数据驱动的测试在MSTest- testContext.Datarow问题
-
24-10-2019 - |
题
我的问题本质上与下面链接的问题相同,但我似乎无法正常工作。我得到的“不能将索引[]应用于类型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,检查它。
完毕!
我对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);
}
不隶属于 StackOverflow