2011-01-24 35 views
14

我與下面鏈接的問題具有基本相同的問題,但似乎無法使其工作。我得到「不能將索引[]應用於System.Data.DataRow類型的表達式」。據我所知,我已經正確實施瞭解決方案。MSTest中的數據驅動測試 - TestContext.DataRow問題

Problems with data driven testing in 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); 
    } 
} 
+2

發現我的問題:需要在我的測試項目中添加對System.Data的引用。 – bq1990 2011-01-25 03:47:51

回答

17

System.Data添加一個參考測試項目。不知道爲什麼它不會自動包含,因爲DataRow用於數據驅動的測試。

0

這個與我一起工作

[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); 

}

1

我有同樣的問題,因爲你與this.TestContext.DataRow [「PathFile_Original」], 我在做什麼錯誤是如此簡單的說,我沒有添加對System.Data的引用,那就是全部。

這是很容易解決,確保你已經有圖書館。

乾杯

5

您應該添加引用到您的測試項目來解決這個問題。我不知道爲什麼VS2013不會自動添加它。

右鍵點擊你的測試項目,Add-> Reference ...-> Assemblies-> Framework-> System.Data,檢查一下。

完成!

enter image description here

1

爲了解決您的問題,正如其他人所說,你應該在你的項目中添加引用System.Data

如果添加引用後仍然存在問題,則可能需要重新啓動Visual Studio,並刪除所有冗餘引用或頭文件。

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – 2015-10-12 22:21:26