MSTESTでのデータ駆動型テスト-TestContext.Datarowの問題
-
24-10-2019 - |
質問
以下にリンクした質問と本質的に同じ問題を抱えていますが、それを機能させることはできません。 「Indexing []をタイプ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
あなたのプロジェクトで。
その参照が追加された後も問題が発生している場合は、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