我正在尝试使用NUnit控制台在命令行上运行一些在Visual Studio中编写的NUnit测试。这些测试是使用.NET 4.5构建的。
要运行它们,我输入:
nunit3-console mytests.dll
我不断得到一个弹出窗口,告诉我“你电脑上的一个应用程序需要以下.NET特性:WindowsFramework3.5(包括Windows2.0和3.0)。
我曾尝试强制NUnit使用4.5,方法是
nunit3-console /framework:net-4.5 mytests.dll
但我得到了同样的东西。
我试着安装了.NET 3.5,但无法安装(我猜是因为我不需要它,因为我已经安装了4.5)。
当使用ReSharper从Visual Studio运行或在NUnit GUI中运行时,测试运行良好...
我已经创建了一个非常简单的解决方案(在.NET 4和.NET 4.5上试用过),它有一个对NUnit 2.6.4的NuGet引用和一个类(如下所示):
[TestFixture]
public class Class1
{
[Test]
public void MyTest()
{
Assert.Pass();
}
}
我仍然得到相同的错误。
我该如何解决这个问题呢?
发布于 2017-10-12 05:21:18
该可执行文件本身(nunit3-console
)必须是由C#编译器针对.NET Framework2.x/3.x(为了所谓的兼容性)而生成的。因此,当它在纯WindowsFramework4.x上运行时,你会看到微软的另一个兼容性功能,它总是会提示并要求安装.NET Framework3.x(你必须通过程序|添加/删除窗口功能来做到这一点)。这两者都是荒谬的,因为人们很少使用WindowsFramework2.x/ 3.x (尽管微软将继续支持.NET Framework3.x作为.NET的一部分)。
为了摆脱这个提示,您可以启用.NET Framework3.5(它还为您提供了针对.NET Framework2.x/3.x进行编译的部分)。或者修改它的nunit3-console.exe.config
文件,使用强制使用.NET 4.x加载此可执行文件。
我猜NuGet版本包含正确的.exe.config
,而MSI版本没有。您可以肯定地进行进一步的分析。
https://stackoverflow.com/questions/46665441
复制相似问题