2015-12-02 115 views
0

我們已經編寫了通用Windows應用程序,並且希望使用SpecFlow進行測試。我們創建了一個通用Windows測試項目。試圖安裝SpecRun.SpecFlow NuGet包失敗,出現此錯誤:SpecRun.SpecFlow 1.2.0與UAP不兼容版本= v10.0

... 
Installing SpecRun.Runner 1.2.0. 
Installing SpecFlow 1.9.0. 
Installing SpecRun.SpecFlow 1.2.0. 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0. 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0. 
Some packages are not compatible with UAP,Version=v10.0. 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0 (win10-arm). 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0 (win10-arm). 
Some packages are not compatible with UAP,Version=v10.0 (win10-arm). 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0 (win10-arm-aot). 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0 (win10-arm-aot). 
Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot). 
    etc. 

如何解決此問題?是否需要特定的項目設置?或者可以肯定有人確認SpecFlow確實不兼容? SpecFlow documentation對支持的平臺相當不明確。

安裝的軟件包:

enter image description here

回答

2

SpecFlow和SpecRun.SpecFlow不直接支持UAP。

至於解決方法,你可以做到以下幾點:

  • 創建便攜式類庫(PCL),並設置目標,以.NET 4.5.1和Windows通用10.0
  • 提取要測試的代碼並把它放到PCL中 但要小心,你沒有完整的.NET Apis 可用。只有您爲PCL選擇的目標子集。
  • 添加到PCL引用您的UAP
  • 創建單元測試項目,並添加一個參考PCL
  • 添加SpecRun.SpecFlow到單元測試項目

現在你可以使用SpecFlow和單元測試項目中的SpecRun.SpecFlow。

2

的SpecRun.SpecFlow 1.2.0 NuGet包中只包含了.NET 3.5組件,所以你不能把它安裝到一個通用的應用程序(UAP)項目。

+0

謝謝你馬特!這個包被推薦用於任何.NET測試項目,因此如果這個包限制爲3.5,那麼爲非3.5項目安裝SpecFlow的正確方法是什麼? –

+1

我在.NET 4.5中使用了SpecFlow。我認爲馬特只是說你不能將它與專門的「Universall App Project」結合使用。 –