我正在尝试使用NUnit控制台在命令行上运行在Visual Studio中编写的一些NUnit测试。测试是使用.NET 4.5构建的。
要运行它们,我正在输入:
nunit3-console mytests.dll
我不断收到弹出窗口,告诉我“您的PC上的应用程序需要以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)。
我试过强迫NUnit使用4.5来说
nunit3-console /framework:net-4.5 mytests.dll
但我得到同样的东西。
我尝试安装.NET 3.5,但无法安装(我猜因为我不需要它,因为我已经有了4.5)。
使用ReSharper或在NUnit GUI中从Visual Studio运行时,测试运行正常......
我创建了一个非常简单的解决方案(尝试使用.NET 4和.NET 4.5),它有一个对NUnit 2.6.4的NuGet引用和一个类(下面):
[TestFixture]
public class Class1
{
[Test]
public void MyTest()
{
Assert.Pass();
}
}
我仍然得到同样的错误。
我该如何解决这个问题?
答案 0 :(得分:0)
可执行文件本身(nunit3-console
)必须由C#编译器生成,目标是.NET Framework 2.x / 3.x(对于所谓的兼容性)。因此,当它在纯.NET Framework 4.x Windows上运行时,您会看到Microsoft的其他兼容性功能,它始终会提示并要求安装.NET Framework 3.x(您必须通过“程序”|“添加/删除”执行此操作Windows功能)。它们都很荒谬,因为人们应该很少使用.NET Framework 2.x / 3.x(尽管Microsoft将继续支持.NET Framework 3.x作为Windows的一部分)。
要摆脱该提示,您可以启用.NET Framework 3.5(它还为您提供了针对.NET Framework 2.x / 3.x编译的位)。或者您修改其nunit3-console.exe.config
文件以使用<supportedRuntime>
强制.NET 4.x用于加载此可执行文件。
我猜NuGet版本包含一个正确的.exe.config
,而MSI版本则没有。您可以进一步分析。