在Jenkins下运行时,VSTest.console.exe会生成空的.coverage文件

时间:2018-08-12 02:11:00

标签: .net visual-studio unit-testing jenkins code-coverage

我使用Jenkins对.Net Framework项目进行了简单的构建配置。该项目使用单元测试。

当我使用Jenkins下的VSTestRunner插件运行测试时,它将生成测试报告.trx以及.coverage文件。找到所有测试并正常运行,但是生成的.coverage文件始终为空(大小为10B,没有覆盖数据)。 我曾尝试在詹金斯(Jenkins)中将该命令作为Shell Execution命令执行。但是它仍然给出相同的结果,即空的.coverage文件。 命令是:

  

“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe”“ CompletePathToLibraries.UnitTest.dll” / Enablecodecoverage / InIsolation / Framework :Framework45 / Logger:trx

但是,如果我从Jenkins外部运行相同的命令,即通过手动启动命令提示符运行命令,它将生成包含所需数据的完美.coverage文件。

系统配置: Windows 10专业版 詹金斯2.121.2 Visual Studio企业版2017 Jenkins作为服务安装,并在NT AUTHORITY \ SYSTEM帐户下运行。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我只是这样解决: 我发现Jenkins服务器将使用与您的内置计算机用户不同的用户来执行cmd。因此,我决定更改uesr帐户,使其与我的内置计算机用户帐户相同。

  1. 按获胜+ R
  2. 输入“ services.msc”,然后按Enter
  3. 找到“ Jenkins”服务,然后双击它
  4. 转到“登录”标签
  5. 选中“此帐户”半径按钮
  6. 输入您的本地帐户和密码
  7. 应用设置
  8. 重新启动Jenkins服务

然后,问题解决了!

希望此解决方案对您有帮助^^