5

我的项目结构如下:

.
├── Application
├── Application.Core
├── Application.Domain
├── Application.Tests
├── Application.IntegrationTests
└── README.md

运行我的测试的命令我使用以下输入:

dotnet test $folder.FullName -c Release --no-build /p:CoverletOutput='$root\coverage' /p:MergeWith='$root\coverage.json' /p:CoverletOutputFormat=opencover 

在哪里$folder指向我的 Application.Tests 路径:C:\projects\coredemoapp\CoreDemoApp.Tests$rootC:\projects\coredemoapp\

所有测试都成功运行。但是,问题是coverage.jsoncoverage.opencover.xml没有创建文件。

我也尝试coverlet直接使用以下命令:

coverlet <path to test.dll> -
-target "dotnet" --targetargs "test --no-build" --merge-with $root\coverage.json --format opencover

,一切都在我的本地机器上运行,具有指向 dll 的显式路径。但是在以前面的命令运行命令的情况下$folder.FullName<path to assembly>coverlet 假定一个调试dll 的路径,而不是它应该的发布版本并且失败。

链接到完整的构建脚本

4

1 回答 1

15

基本上我忘了将coverlet msbuild NuGet 包添加到我的测试项目中。之后,使用以下命令一切正常:

dotnet test $folder.FullName -c Release --no-build /p:CollectCoverage=true /p:CoverletOutput=$root\coverage /p:CoverletOutputFormat=opencover
于 2019-11-05T10:48:14.963 回答