[英]Data driven testing in MSTest - problem with TestContext.DataRow
我與下面鏈接的問題基本上有相同的問題,但我似乎無法讓它工作。 我得到“無法將索引[]應用於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用於數據驅動測試。
您應該為測試項目添加Reference以解決此問題。 我不知道VS2013為什么不自動添加它。
右鍵單擊您的測試項目,Add-> Reference ...-> Assemblies-> Framework-> 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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.