Как тестовый тест MSTEST/Visual Studio 2008 определяет порядок выполнения тестового метода?

У меня создалось впечатление, что методы тестирования в классе unit test будут выполняться в том порядке, в котором они появляются в файле класса. По-видимому, это неправда. Похоже, что он также не основан исключительно на алфавитном порядке. Как MSTEST решает порядок выполнения?

EDIT: я смог отследить ответ после копания. См. Ниже.

Ответы

Ответ 3

Сортировка в тестовом представлении или редактор тестовых списков заставляет их появляться так, как будто у вас есть контроль - это всего лишь продукт реализации. Мы не пытаемся фактически выполнить их в определенном порядке (мы пошли туда и обратно по "разрешению порядка" и "произвольно упорядочиваем" ).

Если вам действительно нужен заказ, для этого предназначены заказные тесты. Они доступны во всех выпусках, где доступно Unit Test - либо используйте меню Test/New Test, либо щелкните правой кнопкой мыши тестовый проект и создайте "упорядоченный тест"

Ответ 4

Это очень просто. Я использую этот

C: > mstest/testcontainer:C:\MyTest.dll/resultsfile:C:\MyTestresults.xml

Логика здесь заключается в том, что по умолчанию mstest дает вам файл .trx. Поэтому в команде напротив опции [/resultfile:] укажите имя файла, указав расширение .xml. Поэтому я использовал /resultsfile:C:\MyTestresults.xml вместо/resultsfile:C:\MyTestresults.trx

Это отлично работает для меня. Дайте мне знать, если это сработает для вас.

Ответ 5

В моем опыте (я был немного тяжело) Я много думал о порядке изменения заказов выполнения метода в проекте MStest. Я попытаюсь описать шаги.

  • Вам следует удалить файлы .testrunconfig и .vsmdi по умолчанию. Эти файлы, созданные Visual Studio при создании тестового проекта.

  • Закройте экземпляр Visual Studio и закройте его.

  • При открытии Visual Studio вы должны открыть тестовый список Edior, а затем создать свой собственный список в разделе "Списки тестов". После создания нового тестового списка он должен быть пустым.

  • Перейдите в раздел "Все загруженные тесты", затем перетащите любой тест на вновь созданную тестовую секцию с выбранным вами порядком.

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

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

Хорошая блокировка

Ответ 6

Проблема. Я хочу сделать только те веб-тесты, которые включены в мой заказ. Я использую упорядоченный тест только для этой цели, поэтому я могу запускать свои веб-тесты в определенном порядке, в котором они мне нужны, для запуска. У меня много веб-тестов, но мой упорядоченный тест содержит подмножество этих веб-тестов, который я хотел бы запустить. Решение: Приказанный тест используется для запуска набора тестов в определенном порядке. Создайте тестовый список Orderer в проекте Visual Studio/test. Из окна тестового окна (Test | Windows | Test View) выберите OrderedTest и запустите его оттуда (вы можете щелкнуть его правой кнопкой мыши и выбрать "Run Selection" ). При заказе будет автоматически запускаться все ваши веб-сайты, которые включены в него.

Вы увидите результаты в окне результатов теста (Test | Windows | Результаты тестирования); дважды щелкните по OrderedTest, и вы увидите подробные результаты для всех ваших веб-сайтов. Вы можете дважды щелкнуть каждый веб-сайт, и вы сможете увидеть подробные результаты для каждого из них.

Ответ 7

Существует множество способов заказать тесты в VS. Используйте тестовое представление и добавьте дополнительные столбцы и порядок. Я использую файлы VSMDI, и это запускает их, как указано в нем.

Ответ 8

Не имеет значения, в каком порядке они работают... если ваши тесты зависят от другого теста, выполняемого вначале, ваши тесты имеют недостатки: -)