MSTest中的数据驱动测试 - TestContext.DataRow的问题

bq1*_*990 14 c# automated-tests mstest data-driven-tests

我与下面链接的问题基本上有相同的问题,但我似乎无法让它工作.我得到"无法将索引[]应用于System.Data.DataRow类型的表达式".据我所知,我已正确实施了解决方案.

MSTest中数据驱动测试的问题

[TestClass]
public class UnitTest1
{
    private TestContext testContextInstance;

    public TestContext TestContext
    {
        get
        {
            return testContextInstance;
        }
        set
        {
            testContextInstance = value;
        }
    }        

    private ServiceReference1.ProductCatalogClient client = new ServiceReference1.ProductCatalogClient("BasicHttpBinding_IProductCatalog");

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\CountList.csv", "CountList#csv", DataAccessMethod.Sequential), DeploymentItem("..\\ServiceTest\\CountList.csv"), TestMethod]
    public void AreCountsCorrect()
    {
        int id = TestContext.DataRow["Id"] as int;
        int count = client.GetProductCount(id);
        Assert.IsTrue(count == TestContext.DataRow["Count"] as int);
    }
}
Run Code Online (Sandbox Code Playgroud)

bq1*_*990 17

添加System.Data对测试项目的引用.不知道为什么不会自动包含,因为DataRow用于数据驱动测试.


kar*_* li 5

您应该为测试项目添加Reference以解决此问题.我不知道VS2013为什么不自动添加它.

右键单击您的测试项目,Add-> Reference ...-> Assemblies-> Framework-> System.Data,检查它.

完成!

在此输入图像描述