使用xunit运行测试时,OpenCover会引发缺少的程序集异常

时间:2018-08-20 20:20:07

标签: c# asp.net-core xunit asp.net-core-2.1 opencover

我正在使用以下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

0 个答案:

没有答案