Вопрос

У меня, по сути, та же проблема, что и вопрос, связанный ниже, но я не могу заставить его работать. Я получаю «не могу применить индексацию [] к выражению типа 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 не добавляет его автоматически.

Щелкните правой кнопкой мыши свой тестовый проект, Add-> Ссылка ...-> Assemblies-> Framework-> System.Data, проверьте его.

Сделанный!

enter image description here

У меня была та же проблема, что и у вас, с this.testcontext.datarow ["pathfile_original"], что я делал неправильно, было настолько просты, что я не добавил ссылку на System.data, это было все.

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

Ваше здоровье

Чтобы решить вашу проблему, как сказали другие, вы должны добавить ссылку на 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