【发布时间】:2016-01-11 18:33:34
【问题描述】:
我正在使用 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%"
任何帮助将不胜感激,在此先感谢。
【问题讨论】:
-
所以你不知道第一个工具使用的文件名是什么样的?你想如何找到创建的文件——只是每个文件扩展名
.trx?哪个位置?如果不止一个怎么办? -
保存在上图TestWindowPath中,保存格式为:username_computername_date_time.trx
-
好的,这意味着您需要查找最新的
*.trx文件,对吗?如果是这样,您可以解析文件名并提取日期部分,或者使用文件(修改)日期,我会选择:for /F "eol=| delims=" %%F in ('dir /B /A:-D /O:D "%TestWindowPath%\*.trx"') do set "FILE=%%~fF"(这会将变量FILE设置为最新的完整路径文件) -
好的,谢谢,我去看看。
-
让它与类似的解决方案一起工作,谢谢!
标签: visual-studio batch-file trx