Подтвердить что ты не робот

Атрибуты DataTestMethod и DataRow в MSTEST

Я видел в видео Microsoft об обновлении Visual Studio 2 относительно этих атрибутов. Тем не менее, я не могу найти никакой другой информации о них и не могу получить проект, чтобы построить с ними.

Кто-нибудь знает что-нибудь об этих атрибутах или как заставить их работать?

[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
    Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}
4b9b3361

Ответ 1

Я знаю, что это старый вопрос, но теперь есть хорошее прохождение, опубликованное в https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test/

В двух словах вам нужно будет установить MSTest.TestFramework и MSTest.TestAdapter и удалить ссылки на Microsoft.VisualStudio.QualityTools.UnitTestFramework. Затем вы можете указать параметризованный тест с атрибутом [DataTestMethod] и можете добавить свои параметры с помощью атрибута [DataRow], как в вашем примере. Значения атрибута [DataRow] будут переданы методу тестирования в том порядке, в котором они указаны.

Обратите внимание, что значения в атрибуте [DataRow] должны быть примитивами, поэтому вы не можете использовать DateTime или decimal, например. Если вы хотите их, вам придется обойти это ограничение (например, вместо того, чтобы иметь параметр DateTime для представления даты, вы могли бы иметь три целочисленных параметра, представляющих год, месяц и день, и создать DateTime в тесте тела).

Ответ 2

Похоже, это доступно только в рамках проекта тестирования модулей для WinRT/Metro и теперь с обновлением 2, Windows Phone 8. Это загадка для моего, почему это не доступно для всех тестов с помощью mstest.

Ответ 3

Наконец, эта функция была добавлена ​​(все еще в предварительном выпуске) https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/

В принципе, нужно сделать две вещи:

1) Установите два пакета NuGet (версии не имеют значения, но это то, что у меня есть)

  <package id="MSTest.TestAdapter" version="1.1.5-preview" targetFramework="net452" />
  <package id="MSTest.TestFramework" version="1.0.6-preview" targetFramework="net452" />

2) Удалите refenrece в старой тестовой библиотеке, потому что он имеет те же атрибуты, которые определены в тех же пространствах имен - это было сделано для обеспечения обратной совместимости

Microsoft.VisualStudio.QualityTools.UnitTestFramework