【问题标题】:How do I use the output file generated from a program as the input for another program? batch file如何使用从一个程序生成的输出文件作为另一个程序的输入?批处理文件
【发布时间】: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


【解决方案1】:

这是我使用的解决方案:

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%

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 2015-08-31
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多