Ответ 1
Я смог отследить ответ.
По словам сотрудника Microsoft Гильермо Серрато:
MSTest выполняет все тесты синхронно, порядок недетерминирован
У меня создалось впечатление, что методы тестирования в классе unit test будут выполняться в том порядке, в котором они появляются в файле класса. По-видимому, это неправда. Похоже, что он также не основан исключительно на алфавитном порядке. Как MSTEST решает порядок выполнения?
EDIT: я смог отследить ответ после копания. См. Ниже.
Я смог отследить ответ.
По словам сотрудника Microsoft Гильермо Серрато:
MSTest выполняет все тесты синхронно, порядок недетерминирован
На самом деле это просто сделать: используйте эту ссылку Как создать заказный тест
Сортировка в тестовом представлении или редактор тестовых списков заставляет их появляться так, как будто у вас есть контроль - это всего лишь продукт реализации. Мы не пытаемся фактически выполнить их в определенном порядке (мы пошли туда и обратно по "разрешению порядка" и "произвольно упорядочиваем" ).
Если вам действительно нужен заказ, для этого предназначены заказные тесты. Они доступны во всех выпусках, где доступно Unit Test - либо используйте меню Test/New Test, либо щелкните правой кнопкой мыши тестовый проект и создайте "упорядоченный тест"
Это очень просто. Я использую этот
C: > mstest/testcontainer:C:\MyTest.dll/resultsfile:C:\MyTestresults.xml
Логика здесь заключается в том, что по умолчанию mstest дает вам файл .trx. Поэтому в команде напротив опции [/resultfile:] укажите имя файла, указав расширение .xml. Поэтому я использовал /resultsfile:C:\MyTestresults.xml вместо/resultsfile:C:\MyTestresults.trx
Это отлично работает для меня. Дайте мне знать, если это сработает для вас.
В моем опыте (я был немного тяжело) Я много думал о порядке изменения заказов выполнения метода в проекте MStest. Я попытаюсь описать шаги.
Вам следует удалить файлы .testrunconfig и .vsmdi по умолчанию. Эти файлы, созданные Visual Studio при создании тестового проекта.
Закройте экземпляр Visual Studio и закройте его.
При открытии Visual Studio вы должны открыть тестовый список Edior, а затем создать свой собственный список в разделе "Списки тестов". После создания нового тестового списка он должен быть пустым.
Перейдите в раздел "Все загруженные тесты", затем перетащите любой тест на вновь созданную тестовую секцию с выбранным вами порядком.
Затем убедитесь, что ваш последний созданный раздел теста отмечен, и вы можете нажать тест запуска и выполнить его с определенным порядком.
Я не знаю, что это может быть ошибка или что-то в этом роде, но она волшебно работает. Мы проверили этот метод пару раз с моим коллегой.
Хорошая блокировка
Проблема. Я хочу сделать только те веб-тесты, которые включены в мой заказ. Я использую упорядоченный тест только для этой цели, поэтому я могу запускать свои веб-тесты в определенном порядке, в котором они мне нужны, для запуска. У меня много веб-тестов, но мой упорядоченный тест содержит подмножество этих веб-тестов, который я хотел бы запустить. Решение: Приказанный тест используется для запуска набора тестов в определенном порядке. Создайте тестовый список Orderer в проекте Visual Studio/test. Из окна тестового окна (Test | Windows | Test View) выберите OrderedTest и запустите его оттуда (вы можете щелкнуть его правой кнопкой мыши и выбрать "Run Selection" ). При заказе будет автоматически запускаться все ваши веб-сайты, которые включены в него.
Вы увидите результаты в окне результатов теста (Test | Windows | Результаты тестирования); дважды щелкните по OrderedTest, и вы увидите подробные результаты для всех ваших веб-сайтов. Вы можете дважды щелкнуть каждый веб-сайт, и вы сможете увидеть подробные результаты для каждого из них.
Существует множество способов заказать тесты в VS. Используйте тестовое представление и добавьте дополнительные столбцы и порядок. Я использую файлы VSMDI, и это запускает их, как указано в нем.
Не имеет значения, в каком порядке они работают... если ваши тесты зависят от другого теста, выполняемого вначале, ваши тесты имеют недостатки: -)