2016-12-06 56 views
0

我的Visual Studio 2015解決方案包含一個面向.NET 4.5的單元測試項目。針對不同.net版本的單元測試問題

我正在測試的代碼是一個.NET 4.0 WPF應用程序。平臺差異是必需的,Visual Studio可以正確識別「異步任務」測試方法。

WPF應用程序項目依賴於MvvmLight NuGet包,所以我也必須在單元測試項目中引用此包。

單元測試編譯失敗,因爲它期望MvvmLight 5.3.0.19038,同時它包含對5.3.0.19026的引用。

我試過單元測試項目手動編輯packages.config文件,以使MvvmLight包(及其依賴)面向.NET 4.0,如:

<package id="MvvmLight" version="5.3.0.0" targetFramework="net40" /> 

但是,大會仍然是相同的。

如何編譯這個項目?

+0

只是爲了澄清 - 你在單元測試項目中使用'async await',但不是你要測試的項目?你能否將被測試的項目升級到類似的框架?或者從測試中刪除'async/await'? – Kritner

+0

我也在待測項目中使用async await。爲此我使用Microsoft.Bcl.Async NuGet包。我目前無法升級.NET版本。 –

回答

0

我可以這樣創建測試解決方法在.NET 4.0「異步任務」測試方法的侷限性:

[TestMethod] 
    public void MyTestMethod() 
    { 
     TaskEx.Run(async() => 
     { 
      //Replace with unit test code 
      await TaskEx.Delay(1000); 

     }).GetAwaiter().GetResult(); 
    } 

仍不能確定這是否會爲所有的測試工作,但它是上手的方式。