У меня большой проект, написанный на c # wpf, также у меня есть непрерывная интеграция в jenkins, которые создают проект и запускают модульный тест после каждого коммита.
Сборка является инкрементной.У меня проблема в том, что CI такой медленный из-за модульного теста
Время, необходимое для построения всего решения: 7 минут
Время, необходимое для запуска всего модульного теста (~ 350 модульного теста):10мин я использую этот скрипт:
for /D %%f in (*.Tests) do call :run_mstest %%f
echo exit flag is %EXIT_FLAG%
echo ----------------------------------------------------------------------
if "%EXIT_FLAG%" == "0" (
echo Unit Test ended OK.
) else (
set ERROR_CODE= 1
echo Unit Test ended NOT OK!
)
goto :end
:run_mstest
Echo Running %1
set current_test=%1
set current_test_result_name=%current_test:.=%Result
set dll_name=%1\bin\%Configuration%\%1.dll
if not exist "%dll_name%" (
set dll_name=%1\bin\%1.dll
)
if not exist "%dll_name%" (
goto :error1
) else (
echo call vstest.console.exe" /PLATFORM:X64 %dll_name%
call vstest.console.exe" /PLATFORM:X64 %dll_name%
if ERRORLEVEL 1 (
echo FAILED
) else (
echo PASSED
)
)
есть ли способ запустить тестовую dll только для проектов, которые были изменены коммитом?потому что моя сборка пошаговая, я хочу сократить время выполнения этих модульных тестов, как я могу это сделать?Спасибо