.net 在Jenkins下运行VSTest.console.exe时生成空的.coverage文件
我与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.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作为服务安装,并在NT AUTHORITY\SYSTEM帐户下运行。我遇到了同样的问题,我只是用这种方式解决: 我发现Jenkins服务器将使用不同于您构建的机器用户的用户执行cmd。因此,我决定更改uesr帐户,使其与我的内置计算机用户帐户相同。
希望此解决方案对您有所帮助^ ^谢谢。它为我解决了这个问题。但原因是什么?msbuild和vstest.console在同一作业中运行。因此,两者必须作为同一用户运行。对吧?除了保险之外,其他一切都很有效。