0

我正在使用 Visual Studio 运行单元测试,它将此作为 cmd 上的命令:

vstest.console.exe C:\Desktop\Project\UnitTests\Debug\UnitTests.dll /Logger:trx

一旦执行,它会生成一个 .trx 文件(Visual Studio 测试结果文件)。接下来,我想获取这个文件并通过一个名为 trx2html 的程序运行它,该程序将从它生成一个可读格式的 html 文件。执行此操作的命令是:

trx2html.exe trxResultFile

这看起来相当简单,但我似乎无法让第二部分工作。我的问题是第一个程序生成一个文件名,所以我不能只在 trx2html.exe 之后键入这个文件名。

到目前为止,这是我的 bat 文件:

@echo %1

SET ProjectPath=%1
SET VsTest=vstest.console.exe %ProjectPath% /Logger:trx
SET TestWindowPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
SET TestResults="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TestResults\"

cd /d %TestWindowPath%

pause

%VsTest%

trx2html.exe "%TestResults% | %VsTest%"

任何帮助将不胜感激,在此先感谢。

4

1 回答 1

0

这是我使用的解决方案:

cd /d %TestResults%

for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set RECENT=%%x
echo %RECENT%

SET trx=trx2html.exe "%RECENT%"

%trx%

和整个程序:

@echo %1

SET ProjectPath=%1
SET VsTest=vstest.console.exe %ProjectPath% /Logger:trx


SET TestWindowPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"

SET TestResults=C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TestResults\

cd /d %TestWindowPath%

%VsTest%

cd /d %TestResults%

for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set RECENT=%%x
echo %RECENT%

SET trx=trx2html.exe "%RECENT%"

%trx%
于 2016-01-11T10:33:34.053 回答