2017-10-10 226 views
0

我想在命令行上使用nunit控制台运行一些在visual studio中编写的nunit测试。这些测试是使用.net 4.5构建的。Nunit控制台要我安装.net 3.5

要运行这些我打字

nunit3-console mytests.dll 

,我不断收到一个弹出窗口,告诉我“您的PC上的应用程序需要下面的窗口功能:.NET框架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的桂..从Visual Studio中运行时 测试运行正常

[编辑] 我创建了一个非常简单的解决方案(与.NET4 & .NET4尝试.5)它有一个Nuit参考nunit 2.6.4和一个类(下)

[TestFixture] 
public class Class1 
{ 
    [Test] 
    public void MyTest() 
    { 
     Assert.Pass(); 
    } 
} 

我仍然得到相同的错误。

任何人都可以帮忙吗?

+0

您是如何安装NUnit控制台的,使用MSI还是通过NuGet?我们之前没有看到这个,所以想要了解问题是什么。 –

+0

我使用msi安装了控制台,但解决方案中引用的nunit使用nuget安装... – rozza

+0

您可以尝试控制台的NuGet版本吗?我想看看这是否是MSI问题。 –

回答

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(尽管微软将继续支持.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版本不是。你可以进一步分析。