Как MSTEST / Visual Studio 2008 Team Test определяет порядок выполнения метода тестирования?
-
08-07-2019 - |
Вопрос
У меня сложилось впечатление, что методы тестирования в классе модульных тестов будут выполняться в следующем порядке: что они появляются в файле класса. Видимо, это не так. Это также, кажется, не основано исключительно на алфавитном порядке. Как MSTEST определяет порядок исполнения?
РЕДАКТИРОВАТЬ: я смог отследить ответ после того, как немного покопался. Смотрите ниже.
Решение
Мне удалось отследить ответ.
По данным Microsoft сотрудник Гильермо Серрато :
MSTest выполняет все тесты синхронно, порядок недетерминирован р>
Другие советы
Это на самом деле просто: используйте эту ссылку Как: создать заказанный Тест
Сортировка в тестовом представлении или редакторе тестового списка приводит к тому, что они отображаются так, как будто у вас есть контроль - это всего лишь побочный продукт реализации. Мы не предпринимаем попыток фактически выполнить их в определенном порядке (мы перебирали туда и обратно «разрешить порядок» и «случайный порядок»).
Если вам действительно нужен порядок, то для этого и нужны упорядоченные тесты. Они доступны во всех выпусках, где доступен модульный тест - используйте меню «Тест / Новый тест» или щелкните правой кнопкой мыши проект теста и создайте «заказанный тест»
Это очень просто. Я использую это
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 | Windows | Test View) выберите OrderedTest и запустите его оттуда (вы можете щелкнуть по нему правой кнопкой мыши и выбрать «Выполнить выбор»). Заказанный тест автоматически запустит все ваши веб-тесты, которые включены в него.
Вы увидите результаты в окне результатов теста (Test | Windows | Test Results); дважды щелкните OrderedTest, и вы увидите подробные результаты для всех ваших веб-тестов. Вы можете дважды щелкнуть каждый веб-тест, и вы сможете увидеть подробные результаты для каждого из них.
Есть много способов заказать тесты в VS. Используйте тестовое представление и добавьте дополнительные столбцы и порядок. Я использую файлы VSMDI, и они запускаются в указанном порядке.
Не должно иметь значения, в каком порядке они выполняются ... если ваши тесты зависят от другого, выполняющегося в первую очередь, ваши тесты имеют недостатки: -)