Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在Jenkins下运行VSTest.console.exe时生成空的.coverage文件_.net_Visual Studio_Unit Testing_Jenkins_Code Coverage - Fatal编程技术网

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

.net 在Jenkins下运行VSTest.console.exe时生成空的.coverage文件,.net,visual-studio,unit-testing,jenkins,code-coverage,.net,Visual Studio,Unit Testing,Jenkins,Code Coverage,我与Jenkins一起为一个.Net Framework项目提供了一个简单的构建配置。该项目使用单元测试 当我在Jenkins下使用VSTestRunner插件运行测试时,它会生成test report.trx和.coverage文件。所有测试都已找到并正常运行,但生成的.coverage文件始终为空(大小为10B,没有覆盖率数据)。 我曾尝试在Jenkins中以Shell执行命令的形式给出该命令。但它仍然给出相同的结果,即空的.coverage文件。 命令是: “C:\Program File

我与Jenkins一起为一个.Net Framework项目提供了一个简单的构建配置。该项目使用单元测试

当我在Jenkins下使用VSTestRunner插件运行测试时,它会生成test report.trx和.coverage文件。所有测试都已找到并正常运行,但生成的.coverage文件始终为空(大小为10B,没有覆盖率数据)。 我曾尝试在Jenkins中以Shell执行命令的形式给出该命令。但它仍然给出相同的结果,即空的.coverage文件。 命令是:

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

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

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

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

  • 按win+R
  • 输入“services.msc”并按enter键
  • 找到“詹金斯”服务并双击它
  • 驱动器至“登录”选项卡
  • 选中“此帐户”按钮
  • 输入您的本地帐户和密码
  • 应用设置
  • 重新启动Jenkins服务
  • 然后,问题就解决了


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

    谢谢。它为我解决了这个问题。但原因是什么?msbuild和vstest.console在同一作业中运行。因此,两者必须作为同一用户运行。对吧?除了保险之外,其他一切都很有效。