Можно ли групповые тесты MsTest сгруппировать по категориям - PullRequest
7 голосов
/ 24 ноября 2010

В MbUnit можно сделать что-то вроде этого:

[Test]
[TestCategory("Bad Arguments")]
[TestCategory("Fast")]
[ExpectedException(typeof(ArgumentNullException))]
public void TestCopyWithBadHref()
{
   . . . 
}

Обратите внимание на эти два:

[TestCategory("Bad Arguments")]
[TestCategory("Fast")]

Поскольку TeamBuild может быть интегрирован с MsTest для выполнения закрытых проверок и/ или бегать по ночам, это отличная функция!Однако, учитывая, что некоторые тесты могут выполняться в течение длительного времени, удобно разделить их на тесты, которые должны выполняться перед подтверждением каждой регистрации, и на тесты, которые должны выполняться ночью, вместо этого из-за их продолжительности и другихфакторы.

Одним из способов достижения этой цели может быть создание нескольких проектов - одного для медленных тестов, одного для быстрых тестов и т. д. Однако такое разделение неудобно.Зависимости проекта не кажутся такими естественными, плюс некоторые тесты могут относиться к нескольким логическим категориям.

Было бы замечательно, если бы MsTest имел что-то похожее на то, что было у MbUnit в течение длительного времени.Например, можно запустить MbUnit.Cons.exe и указать категорию, которая будет использоваться с параметром командной строки.

Как мне добиться того же, используя MsTest?Мы являемся магазином MSFT, и мне не удалось продать MbUnit моим коллегам.

1 Ответ

15 голосов
/ 24 ноября 2010

Вы можете использовать параметр / category для фильтрации тестов в VS 2010.

Используется атрибут testcategory . Подробная информация о параметре / категория .

Код C # может выглядеть примерно так:

[Description("test 123456"), TestCategory("Edit Tests"), TestCategory("Non-Smoke"), TestMethod]
public void VerifyEditsPersist()
...