Как я могу сказать, чтобы мой (MSTest) список тестов запускался в одном из двух режимов из командной строки? - PullRequest
2 голосов
/ 24 февраля 2012

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

Сейчас я использую файл vsmdi, чтобы разделить свои тесты на разные списки с именами на коммит и на ночь, и мои вызовы на сервере сборкиих через командную строку, используя файл vsmdi и имя списка тестов.Чтобы это работало, мне нужно сделать две разные функции [TestMethod], одну для режима фиксации и одну для ночного режима.Затем я, конечно, назначаю их в один из двух списков.

Я подумал, что это немного утомительно ... Я знаю, что вы не можете передавать параметры в ваши методы тестирования, но есть ли способ настроитькласс теста, чтобы каждый тест понимал, в каком режиме он пытается работать?Эту конфигурацию нужно каким-то образом передать через командную строку, чтобы сервер сборки работал, и было бы неплохо, если бы я мог также настроить Visual Studio для работы в одном режиме или другом, или в обоих, в любой заданной точке, чтобы тестовая клавиатура работалаярлыки работают правильно.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Вы можете добиться этого, используя атрибут категории MsTest в своих модульных тестах.

[Category("Foo")]
[TestMethod]
public void MyTest() {
    // test
}

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

1 голос
/ 24 февраля 2012

Если ваш «обширный» набор данных занимает слишком много времени для запуска, то, вероятно, у вас есть проблема с вашим набором данных. Вы должны быть в состоянии охватить все ваши тестовые наборы в минимальном наборе данных, который выполняется быстро. Вот мой анекдот: однажды я написал что-то для создания штрих-кодов USPS. USPS очень любезно предоставил 10 000 тестовых случаев и их ожидаемые результаты. Я покорно превратил эти 10000 тестов в отдельные юнит-тесты. Тем не менее, я быстро понял, что эти 10000 тестовых случаев были в значительной степени избыточными, и на самом деле было всего пара десятков реальных тестовых случаев - остальные были шумовыми. Я подозреваю, что это происходит в вашем случае. Вы тестируете с большим набором данных, который можно протестировать с гораздо меньшим набором данных.

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

...