我的问题本质上与下面链接的问题相同,但我似乎无法正常工作。我得到的“不能将索引[]应用于类型System.Data.Datarow的表达方式”。据我所知,我已经正确实施了该解决方案。

数据驱动测试的问题

[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);
    }
}
有帮助吗?

解决方案

添加参考 System.Data 进行测试项目。不知道为什么DataRow用于数据驱动测试,因此为什么不会自动包含。

其他提示

您应该添加对测试项目的参考,以解决此问题。我不知道为什么VS2013不会自动添加它。

右键单击您的测试项目,附加 - >参考...->汇编 - >框架 - > System.Data,检查它。

完毕!

enter image description here

我对this.testcontext.datarow [“ pathfile_original”]遇到了与您相同的问题,我做错了什么是如此简单,我没有添加对system.data的引用。

修复非常容易,请确保您已经拥有库。

干杯

正如其他人所说,要解决您的问题,您应该添加参考 System.Data 在您的项目中。

如果添加了该参考后仍在遇到问题,则可能需要重新启动Visual Studio,并删除任何冗余引用或 using 标题。

这个正在和我一起工作

[TestMethod]
    [TestCategory("Category 4")]
    [DataSource("MyExcelDataSource")]
    [DeploymentItem("UnitTestProject\\DBConnections.xlsx")]
    public void testwithexceldata()
    {
        //http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.testcontext.datarow.aspx

        int x = TestContext.DataRow.Table.Rows.Count;
        int Balance = Convert.ToInt32(TestContext.DataRow["Balance"]);
        int Amount = Convert.ToInt32(TestContext.DataRow["Amount"]);
        Assert.AreEqual(Balance, Amount);

}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top