【问题标题】:Jenkins MSTestRunner plugin is unable to launch mstest.exeJenkins MSTestRunner 插件无法启动 mstest.exe
【发布时间】:2012-09-04 12:23:05
【问题描述】:

我已将 Jenkins MSTestRunner 插件配置为使用 MSTest 可执行文件的以下路径:'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe'。但是,虽然这条路径是正确的,但是构建失败如下:

cmd.exe /C "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe" "/resultsfile:/resultsfile testresults" /testcontainer:Project.Tests/bin/Debug/Project.Tests.dll && exit %%ERRORLEVEL%%
'C:\Program' is not recognized as an internal or external command, operable program or batch file.

这里有什么问题,我认为这是配置 MSTestRunner 插件的正常方式,因为 mstest.exe 安装在 Visual Studio 下,而 Visual Studio 又通常安装在“C:\Program Files (X86)”下?我该如何解决这个问题?

【问题讨论】:

  • 如错误消息所述,路径解析在空格处停止,路径的其余部分在此处作为参数。所以命令环境实际上是在尝试执行位于 C:\ 的“程序”。我猜如果你用双引号(“)将路径括起来,这会起作用。
  • 我不知道这是否适合您,但您能否将“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE”添加到您的 Path 环境变量中那台机器,然后只在 Jenkins 配置中指定 mstest.exe?
  • 请注意,上述方法需要在添加 Path 变量后重新启动 Jenkins 才能让 Jenkins 命令环境拾取它。
  • @CIGuy 是的,我认为这将是最后的手段,但我不是很渴望:/ 我想也许我可以直接编写一个命令行构建步骤,完全避开有问题的插件。

标签: jenkins mstest visual-studio-2012 jenkins-plugins


【解决方案1】:

已收到插件作者的确认,即 MSTestRunner 0.2.0 不处理 MSTest 路径中的空格。我通过在 Jenkins 中创建一个直接调用 mstest.exe 的“执行 Windows 批处理命令”构建步骤来解决这个问题,其中我用双引号将 mstest.exe 路径括起来:

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Project.Tests\bin\Debug\Project.Tests.dll /resultsfile:testresults.trx

【讨论】:

  • 如果这个问题得到解决,有人会吗?如我所见,如果无法访问 mstest.exe,插件永远不会首先工作??
  • @user1025852 不知道,没听说过。
【解决方案2】:

发现我的问题是 2 倍。

  1. 文件条目来自本地工作区目录
  2. 您必须在全局工具中配置 mstest,然后在构建步骤中选择该实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2021-02-15
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多