2017-10-10 151 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版本不是。你可以進一步分析。