2010-06-07 26 views
5

Sto cercando di far funzionare i test basati sui dati in C# con MSTest/Selenium. Ecco un esempio di alcuni dei miei codice cercando di configurarlo:Problemi con test basati sui dati in MSTest

[TestClass] 
public class NewTest 
{ 
    private ISelenium selenium; 
    private StringBuilder verificationErrors; 
    [DeploymentItem("GoogleTestData.xls")] 
    [DataSource("System.Data.OleDb", 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=GoogleTestData.xls;Persist Security Info=False;Extended Properties='Excel 8.0'", 
    "TestSearches$", DataAccessMethod.Sequential)] 

    [TestMethod] 
    public void GoogleTest() 
    { 
     selenium = new DefaultSelenium("localhost", 4444, "*iehta", http://www.google.com); 
     selenium.Start(); 
     verificationErrors = new StringBuilder(); 
     var searchingTerm = TestContext.DataRow["SearchingString"].ToString(); 
     var expectedResult = TestContext.DataRow["ExpectedTextResults"].ToString(); 

    ... 

Ecco il mio errore: Errore 3 è necessario un riferimento a un oggetto per il campo non statico, metodo o proprietà 'Microsoft.VisualStudio .TestTools.UnitTesting.TestContext.DataRow.get' E: \ Progetti \ SeleniumProject \ SeleniumProject \ MaverickTest.cs 32 33 SeleniumProject

l'errore è sottolineando la parte "TestContext.DataRow" di entrambe le dichiarazioni. Ho davvero lottato con questo, grazie!

+0

io non sono sicuro di come ottenere il codice lì senza ottenerlo massacrato? scusa a tutti – Jacob

risposta

9

prova:

public TestContext TestContext { get; set; } 

e provare a utilizzare le cose come:

this.TestContext.DataRow["SearchingString"].ToString(); 
+0

Grazie per la risposta! Ho provato le tue aggiunte al codice e mi sta dicendo che non è possibile applicare l'indicizzazione con [] a un'espressione di tipo 'System.Data.DataRow' supponi che sia un problema con la mia configurazione al foglio di calcolo? Sono nuovo di zecca per C# se non si potesse dire! – Jacob

+0

Nevermind ... ha funzionato .. sei morto con il metodo TestContext grazie! Ecco come ho dovuto usarlo per farlo funzionare: searchTerm = System.Convert.ToString (TestContext.DataRow ["SearchingString"]); – Jacob

+0

Felice di essere di aiuto, evviva! – VoodooChild

Problemi correlati