2010-06-07 55 views
5

我想要使用MSTest/Selenium在C#中进行数据驱动测试。 下面是一些我的代码试图将其设置一个样品: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(); 

    ... 

这是我的错误: 错误3的对象引用是所必需的非静态字段,方法或属性“Microsoft.VisualStudio .TestTools.UnitTesting.TestContext.DataRow.get'E:\ Projects \ SeleniumProject \ SeleniumProject \ MaverickTest.cs 32 33 SeleniumProject

错误突出显示了两个语句的“TestContext.DataRow”部分。 我真的一直在努力与这一个,谢谢!

+0

我不知道如何获取代码中有没有它得到宰割?对不起大家 – Jacob 2010-06-07 21:31:09

回答

9

尝试:

public TestContext TestContext { get; set; } 

,并尝试使用它喜欢:

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

感谢您的回应!我试过你的代码添加,它告诉我它不能将索引用[]应用于'System.Data.DataRow'类型的表达式,你认为这是我的电子表格设置问题吗?如果你不知道,我是c#的新手! – Jacob 2010-06-08 14:40:48

+0

Nevermind ...得到它的工作..你死了与TestContext方法谢谢!这是我不得不使用它来得到它的工作方式: searchTerm = System.Convert.ToString(TestContext.DataRow [“SearchingString”]); – Jacob 2010-06-09 19:08:58

+0

很高兴为您服务,欢呼! – VoodooChild 2010-06-10 04:37:16