Frage

Ich habe im Wesentlichen das gleiche Problem wie die unten verlinkte Frage, aber ich kann es nicht zum Laufen bringen. Ich erhalte "Indexierung [] nicht auf einen Ausdruck des Types Systems anwenden. Data.Datarow". Soweit ich das beurteilen kann, habe ich die Lösung korrekt implementiert.

Probleme mit datengesteuerten Tests 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);
    }
}
War es hilfreich?

Lösung

Fügen Sie einen Verweis auf System.Data zum Testprojekt. Keine Ahnung, warum dies nicht automatisch enthalten wäre, da Datarow für datengesteuerte Tests verwendet wird.

Andere Tipps

Sie sollten Verweis auf Ihr Testprojekt hinzufügen, um dieses Problem zu beheben. Ich weiß nicht, warum VS2013 es nicht automatisch hinzufügt.

Klicken Sie mit der rechten Maustaste auf Ihr Testprojekt, add-> Referenz ...-> Assemblys-> Framework-> System.data, überprüfen Sie es.

Fertig!

enter image description here

Ich hatte das gleiche Problem wie Sie mit dem testcontext.datarow ["pathfile_original"], was ich falsch gemacht habe, war so einfach, dass ich den Verweis auf System nicht hinzugefügt habe. Data, das war alles.

Es ist ziemlich einfach zu reparieren. Stellen Sie sicher, dass Sie bereits Bibliothek haben.

Prost

Um Ihr Problem zu beheben, sollten Sie, wie andere gesagt haben, einen Verweis hinzufügen System.Data in Ihrem Projekt.

Wenn Sie nach dem Hinzufügen dieser Referenz noch ein Problem haben, müssen Sie möglicherweise Visual Studio neu starten und redundante Referenzen entfernen oder using Header.

Dieser arbeitet mit mir zusammen

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

}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top