我正在使用以下bat文件通过OpenCover生成代码覆盖率报告。
rmdir /s /q artifacts
mkdir artifacts
set sharedProject[0]="src\BuildingBlocks\Shared\tests\Common.API.UnitTests"
for /F "tokens=2 delims==" %%s in ('set sharedProject[') do (
cd %%s
"..\..\..\..\..\tools\OpenCover\OpenCover.Console.exe" ^
-target:"c:\Program Files\dotnet\dotnet.exe" ^
-targetargs:" xunit --fx-version 2.1.2 --no-build -xml ../../../../../artifacts/tests/%%s.xml" ^
-mergeoutput ^
-hideskipped:File ^
-output:"..\..\..\..\..\artifacts\opencover.xml" ^
-oldStyle ^
-skipautoprops ^
-filter:"+[companyName.*]*" ^
-register:regsvr32
cd ..\..\..\..\..
)
我通过Visual Studio正常运行了所有程序,但是当我尝试运行此脚本时,找不到或加载了某些程序集(Nuget程序包)。因此,某些测试失败,而另一些则通过。
在运行脚本之前,我尝试删除bin文件夹并执行:
dotnet restore
dotnet build
我已将上面的脚本更改为以下脚本,并且一切正常:
rmdir /s /q artifacts
mkdir artifacts
set sharedProject[0]="src\BuildingBlocks\Shared\tests\Common.API.UnitTests"
for /F "tokens=2 delims==" %%s in ('set sharedProject[') do (
cd %%s
"..\..\..\..\..\tools\OpenCover\OpenCover.Console.exe" ^
-target:"c:\Program Files\dotnet\dotnet.exe" ^
-targetargs:"test --no-build" ^
-mergeoutput ^
-hideskipped:File ^
-output:"..\..\..\..\..\artifacts\opencover.xml" ^
-oldStyle ^
-skipautoprops ^
-filter:"+[companyName.*]*" ^
-register:regsvr32
cd ..\..\..\..\..
)
但是,我无法使用“ dotnet测试”保存测试结果。有什么想法为什么使用dotnet xunit时某些Nuget软件包无法加载?
我正在使用.NET Core 2.1,而我遇到的两个Nuget程序包是:Microsot.Extensions.Configuration.Abstraction和Newtonsoft.Json