Как написать пакетный файл для OpenCover для MSTest с относительными путями, чтобы он стал независимым от машины?

Я использую приведенный ниже формат для запуска покрытия кода OpenCover для MSTest из cmd:

C:\> \Your\OpenCover\Path\OpenCover.Console.exe -target:"\Your\Path\Here\MSTest.exe" -targetargs:"/testcontainer:\Your\DLL\Path\bin\Debug\TestProject.dll" -output:\Your\Output\File.xml -register:user

и ниже команда для запуска генератора отчетов для создания отчета из сгенерированного OpenCover XML-файла:

C:\ReportGenerator\bin\ReportGenerator.exe -reports:"C:\Reports\MSTest\projectCoverageReport.xml" -targetdir:"C:\Reports\CodeCoverage"

И это работает нормально, но пути для OpenCover.exe, MSTest.exe, ReportGenerartor.exe и т. д. всегда будут зависеть от машины, как мы можем сделать их относительными, чтобы можно было создать общий пакетный файл для запуска этих команд. с любой машины?


person Neha Gupta    schedule 15.01.2020    source источник


Ответы (1)


Вы можете использовать команду «forfiles» для рекурсивного поиска в каталогах путей к этим конкретным файлам. В приведенном ниже примере будет выполняться поиск столько букв дисков, сколько вы введете:

for %%i in (c:\, d:\, e:\, ......) do if exist %%i (
    for /f "tokens=*" %%a in ('forfiles /p %%i /m OpenCover.Console.exe /s /c "cmd /c echo @path"') do set openCover=%%a
    for /f "tokens=*" %%b in ('forfiles /p %%i /m MSTest.exe /s /c "cmd /c echo @path"') do set msTest=%%b
)

Отсюда вы можете вспомнить переменные как:

    %openCover% -target:%msTest% ...etc
person TrahanL    schedule 15.01.2020