我正在尝试使用 .NET Core 为我的 C# 项目运行单元测试。 我正在使用 Docker运行时的容器。
码头文件
FROM microsoft/dotnet:0.0.1-alpha
RUN mkdir /src
WORKDIR /src
ADD . /src
RUN dotnet restore
“NUnit”和“NUnit.Runners”已添加到 project.json 中
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"NETStandard.Library": "1.0.0-rc2-23811",
"NUnit": "3.2.0",
"NUnit.Runners": "3.2.0"
},
"frameworks": {
"dnxcore50": { }
}
运行 dotnet restore
成功,输出如下
...
log : Installing NUnit.ConsoleRunner 3.2.0.
log : Installing NUnit.Extension.NUnitV2ResultWriter 3.2.0.
log : Installing NUnit.Extension.NUnitV2Driver 3.2.0.
log : Installing NUnit.Extension.VSProjectLoader 3.2.0.
log : Installing NUnit.Extension.NUnitProjectLoader 3.2.0.
log : Installing NUnit.Runners 3.2.0.
info : Committing restore...
log : Restore completed in 4352ms.
我尝试运行测试:
dotnet nunit
dotnet nunit-console
但它不起作用。
我该如何调用运行者?或者是否有另一个单元测试框架适用于当前版本的 .NET Core?
最佳答案
更新 4:NUnit3TestAdapter v3.8已经发布,所以它不再是 alpha。
更新 3:
用NUnit3TestAdapter v3.8.0-alpha1现在可以使用 dotnet test
命令运行测试。你只需要在你的测试项目中有这些依赖:
<PackageReference Include="nunit" Version="3.7.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0-*" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.*" />
你可以试试看!
更新 2:Visual Studio 2017 和从 project.json
到 csproj
的移动使得 dotnet-test-nunit
测试适配器已过时,因此我们需要发布另一个更新的适配器来运行 .NET Core 测试。请看Testing .NET Core with NUnit in Visual Studio 2017如果您使用的是 VS2017 和新的 .NET Core 工具。如果您使用的是 project.json
,请参阅下面的更新。
更新:NUnit 现在支持dotnet test
,因此您不必再使用NUnitLite。参见 testing .NET Core RC2 and ASP.NET Core RC2 using NUnit 3 .
NUnit 控制台(和底层 NUnit 引擎)尚不支持针对 .NET 核心运行单元测试。希望我们能在 NUnit 3.4 中获得这种支持。
与此同时,您可以使用 NUnitLite 将测试切换到自执行测试运行程序。
我在 Testing .NET Core using NUnit 3 上写了一篇关于这个过程的博文.一个快速的总结是;
应该是这样的;
using NUnitLite;
using System;
using System.Reflection;
namespace MyDnxProject.Test
{
public class Program
{
public int Main(string[] args)
{
var writter = new ExtendedTextWrapper(Console.Out);
new AutoRun(typeof(Program).GetTypeInfo().Assembly).Execute(args, writter, Console.In);
}
}
}
有关更完整的信息,请参阅 my blog post .
关于c# - 在 .NET Core 中运行 NUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578232/