Environment:
.Net Core 2.0
visual Studio Professional 2017
NUnit3
OpenCover (For code coverage)
ReportGenerator(For code coverage report)
嗨,诺尼特团队, 我对 MS 测试框架非常熟悉,并且已经对此进行了广泛的研究,但正在测试 NUnit 框架的合适程度,因此想围绕它做一个小的 POC。我创建了一个小型类库和一个单元测试项目。下面是已安装的 NuGet 包:
NUnit 3.7.1
但是当我尝试从控制台运行程序运行测试用例时,如下所示,我收到异常,说找不到 System.Runtime,版本=4.2.0.0 程序集。
C:UsersUN.nugetpackagesnunit.consolerunner3.8.0tools>nunit3-console.exe D:Code_TrialsBoMLibraryBomTestbinDebugnetcoreapp2.0BomTest.dll
异常详情:
Errors, Failures and Warnings
Invalid : D:Code_TrialsBoMLibraryBomTestbinDebugnetcoreapp2.0BomTest.dll
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
----> Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Settings
DisposeRunners: True
WorkDirectory: C:UsersSmukherjee.nugetpackagesnunit.consolerunner3.8.0tools
ImageRuntimeVersion: 4.0.30319
ImageTargetFrameworkName: .NETCoreApp,Version=v2.0
ImageRequiresX86: False
ImageRequiresDefaultAppDomainAssemblyResolver: False
NumberOfTestWorkers: 4
我真的不知道为什么会这样?无论我尝试什么都无法通过此错误。此外,当我尝试从Nuget安装程序集时,我什至找不到版本为4.2.0.0的程序集。
尝试安装System.Runtime的4.3.0.0版本,但没有运气。你能帮忙吗?
奇怪的是,我有一个示例单元测试项目(作为 opencover nuget 安装的一部分),该项目面向 .Net Framework 4.5 并安装了 NUnit2.6.7 包,当我尝试使用 NUnit3 控制台运行它时,它就像魅力一样工作。
甚至,安装 NUnit3 最新的稳定版本 3.10.1.0 也无济于事。此外,这肯定不是 Opencover 问题,因为 opencover 控制台只是将测试运行请求传递给 NUnit 控制台。所以问题必须围绕NUnit。
如果您需要有关此的更多信息,请告诉我。
在这里找到了答案 https://github.com/nunit/nunit/issues/2763
NUnit Console
不运行 .NET Core 测试 - 需要改用 dotnet 测试。看看这个页面:
https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard