2010-06-07 20 views
5

J'essaie d'obtenir des tests pilotés par les données pour travailler en C# avec MSTest/Selenium. Voici un échantillon de quelques-uns de mon code en essayant de le mettre en place:Problèmes avec les tests pilotés par données dans 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(); 

    ... 

Voici mon erreur: Erreur 3 Une référence d'objet est nécessaire pour le champ non statique, méthode ou propriété « Microsoft.VisualStudio .TestTools.UnitTesting.TestContext.DataRow.get 'E: \ Projects \ SeleniumProject \ SeleniumProject \ MaverickTest.cs 32 33 SeleniumProject

L'erreur souligne la partie "TestContext.DataRow" des deux instructions. J'ai vraiment eu du mal avec celui-ci, merci!

+0

Je ne sais pas comment obtenir le code là-dedans sans que cela s'égorgé? désolé tout le monde – Jacob

Répondre

9

essayer:

public TestContext TestContext { get; set; } 

et essayer de l'utiliser comme:

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

Merci pour la réponse! J'ai essayé vos ajouts de code et il me dit qu'il ne peut pas appliquer l'indexation avec [] à une expression de type 'System.Data.DataRow' est-ce que vous supposez que c'est un problème avec ma configuration à la feuille de calcul? Je suis tout nouveau à C# si vous ne pouviez pas dire! – Jacob

+0

Nevermind ... ça marche ... vous étiez mort avec la méthode TestContext merci! Voici comment je devais l'utiliser pour le faire fonctionner: searchTerm = System.Convert.ToString (TestContext.DataRow ["SearchingString"]); – Jacob

+0

Heureux d'être d'aide, bravo! – VoodooChild