Тестирование на основе данных в MSTest - проблема с TestContext.DataRow - PullRequest
14 голосов
/ 25 января 2011

У меня, по сути, та же проблема, что и у вопроса, связанного ниже, но я не могу заставить его работать. Я получаю "не могу применить 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);
    }
}

Ответы [ 5 ]

17 голосов
/ 25 января 2011

Добавить ссылку на System.Data в тестовый проект. Не знаю, почему это не будет включено автоматически, поскольку DataRow используется для тестов, управляемых данными.

5 голосов
/ 14 октября 2014

Вы должны добавить ссылку на ваш тестовый проект, чтобы решить эту проблему.Я не знаю, почему VS2013 не добавляет его автоматически.

щелкните правой кнопкой мыши свой тестовый проект, выберите Add-> Reference ...-> Assembly-> Framework-> System.Data, проверьте его.

Готово!

enter image description here

1 голос
/ 12 октября 2015

Чтобы исправить вашу проблему, как уже говорили другие, вы должны добавить ссылку на System.Data в вашем проекте.

Если у вас все еще есть проблема после добавления этой ссылки, вам может потребоватьсяперезапустите Visual Studio и удалите все лишние ссылки или using заголовки.

1 голос
/ 23 июня 2014

У меня была та же проблема, что и у вас с this.TestContext.DataRow ["PathFile_Original"], то, что я делал неправильно, было настолько просто, что я не добавил ссылку на System.Data, вот и все.

Это довольно легко исправить, убедитесь, что у вас уже есть библиотека.

Приветствия

0 голосов
/ 17 ноября 2013

это работает со мной

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

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...