質問

以下にリンクした質問と本質的に同じ問題を抱えていますが、それを機能させることはできません。 「Indexing []をタイプSystem.Data.Datarowの式に適用できません」。私が知る限り、私はソリューションを正しく実装しました。

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);
    }
}
役に立ちましたか?

解決

に参照を追加します System.Data テストプロジェクトに。 Datarowがデータ駆動型のテストに使用されるため、なぜそれが自動的に含まれないのかわかりません。

他のヒント

この問題を修正するには、テストプロジェクトへの参照を追加する必要があります。 vs2013が自動的に追加しない理由はわかりません。

テストプロジェクトを右クリックして、アドオド>参照...->アセンブリ - >フレームワーク - > system.dataをチェックしてください。

終わり!

enter image description here

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

}

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top