VSTest: Заказ выполнения тестовых сборок

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

Сервер Azure DevOps запускает весь наш тестовый комплект параллельно, что делает его очень быстрым. Но проблема в том, что длительные тесты запускаются в середине тестового запуска, что приводит к тому, что весь тестовый запуск будет длиннее.

Есть ли способ повлиять на порядок запуска тестовых сборок? Я хочу сначала запустить длительные тестовые сборки, а затем быстрые тестовые сборки.


person F. Baum    schedule 08.06.2020    source источник
comment
Не получаю ответа несколько дней. Не стесняйтесь сообщить мне, могут ли ответы соответствовать вашим требованиям. Напоминаем, что об этом.   -  person Kevin Lu-MSFT    schedule 11.06.2020
comment
Я тоже ищу способ добиться этого. Вы нашли решение?   -  person João Passos    schedule 30.04.2021


Ответы (2)


Поскольку вы запускаете тест параллельно, вы можете попробовать использовать параметр Based on past running time of tests в задаче тестирования Visual Studio.

настройки тестовой задачи

Согласно этому документу о Параллельный тест:

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

Эта опция позволяет запускать тесты в группах в зависимости от времени выполнения. Наконец, каждая группа будет завершена за одинаковое время.

Надеюсь это поможет.

person Kevin Lu-MSFT    schedule 09.06.2020
comment
Я тоже думал об этом, но разве мне для этого не нужно несколько агентов? - person F. Baum; 12.06.2020
comment
@ Ф.Баум Да. Вам нужно настроить несколько агентов. Судя по моему тесту, рабочие часы на каждой работе похожи. - person Kevin Lu-MSFT; 12.06.2020
comment
По нескольким причинам я не могу использовать несколько агентов. Есть ли другой способ распорядиться о казни? - person F. Baum; 14.06.2020
comment
Не могли бы вы рассказать, как тест проходит параллельно? Вы используете эту опцию: Run tests in parallel on multi-core machines? - person Kevin Lu-MSFT; 15.06.2020
comment
да. Я использую флаг Run tests in parallel on multi-core machines - person F. Baum; 16.06.2020
comment
Отметьте это doc. Если параллельные тесты выполняются на одной машине, они также могут использовать функции параллелизма. Вы можете попробовать и проверить, может ли он работать. - person Kevin Lu-MSFT; 18.06.2020

Мы достигли этого, расположив папки проекта таким образом, чтобы они отсортировывались так, чтобы в первую очередь выдавать самые длительные тестовые сборки. Вы можете увидеть порядок, в котором VSTest находит сборки в выходных данных Azure DevOps. Оттуда вы можете переименовать папку, чтобы изменить порядок.

Было бы неплохо, если бы был другой способ повлиять на это.

person Rob Dal Santo    schedule 12.05.2021