2016-04-08 2 views
0

Я хотел бы создать определение сборки VSTS, где я могу указать vstest.console.exe для выполнения на любой DLL, содержащей слово test. Это определение было бы:VSTest Выполнять каждую dll отдельно

**\*test*.dll;-:**\obj\** 

Это выполняет команду, как следующее для моего репозитория:

2016-04-08T20:38:41.4966824Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe 
"E:\A\_work\33\s\A\UnitTests\bin\Release\A.UnitTests.dll" 
"E:\A\_work\33\s\A\bin\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" 
"E:\A\_work\33\s\B\UnitTests\bin\Release\B.UnitTests.dll" 
"E:\A\_work\33\s\B\UnitTests\bin\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" 
/logger:trx 

Проблема у меня в том, что дллы это & B имеет зависимость от одних и тех же DLL имен но в разных версиях это означает, что vstest.console.exe не может одновременно загружать DLL, и один из двух случаев связан с ошибкой.

Есть ли способ заставить vstest.console.exe загружать отдельно для каждой DLL? Я попытался/InInsolation, но это не решило проблему.

Я знаю, что выполнение каждой DLL отдельно с помощью другой команды vstest.console.exe будет работать, но это громоздко для достижения в VSTS. Есть ли у меня другие варианты?

ответ

1

Вы можете попробовать с функцией «Run In Parallel». Проверьте параметр «Запуск в параллель» в шаге «Visual Studio Test» или включите его, используя файл для тестирования.

Параллельное Выполнение теста

Студия Test Platform Визуальная представляет поддержку параллельного выполнения тестов.

Параллельное выполнение теста использует доступные ядра на машине, и реализуется путем запуска двигателя выполнения испытаний на каждом доступного ядра в качестве отдельного процесса, и передавая ему контейнер (монтаж, DLL, или соответствующий артефакт, содержащий тесты для выполнения), тестов. Единицей планирования является тестовый контейнер . Внутри каждого контейнера тесты будут выполняться согласно семантике тестовой структуры. Если таких контейнеров существует, тогда как процессы завершают выполнение тестов в контейнере , им передается следующий доступный контейнер.

Обратитесь к этой ссылке для деталей: Parallel Test Execution

Однако, на мой взгляд, самый простой способ сделать это, добавив дополнительный «Visual Studio Test» шаг в вашем определении сборки. Затем вы можете настроить одну задачу VSTest для выполнения A.UnitTests.dll и другой задачи VSTest для выполнения B.UnitTests.dll.

Смежные вопросы