Question

Je vais avoir essentiellement le même problème que la question liée ci-dessous, mais je ne peux pas sembler le faire au travail. Je reçois « ne peut pas appliquer l'indexation [] à une expression de type System.Data.DataRow ». Pour autant que je peux dire, je l'ai mis en œuvre correctement la solution.

Problèmes avec des données test entraîné dans 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);
    }
}
Était-ce utile?

La solution

Ajoutez une référence à System.Data au projet de test. Aucune idée pourquoi ce ne serait pas automatiquement inclus depuis DataRow est utilisé pour les données des tests conduits.

Autres conseils

Vous devriez ajouter une référence à votre projet de test pour résoudre ce problème. Je ne sais pas pourquoi VS2013 n'ajoute pas automatiquement.

clic droit de votre projet de test, Ajouter-> Référence ...-> des Assemblées> à carcasses> System.Data, vérifier.

Fait!

entrer image description ici

J'ai eu le même problème que vous avec le this.TestContext.DataRow [ « PathFile_Original »], ce que je faisais mal était si simple, je ne l'ai pas ajouter la référence à System.Data, ce fut tout.

Il est assez facile de fixer, assurez-vous que vous avez déjà la bibliothèque.

Vive

Pour résoudre votre problème, comme d'autres l'ont dit, vous devez ajouter une référence à System.Data dans votre projet.

Si vous avez encore un problème après cette référence a été ajoutée, vous devrez peut-être redémarrer Visual Studio, et supprimer toute référence redondantes ou les en-têtes de using.

celui-ci travaille avec moi

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

}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top