2015-12-02 69 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”结合使用。 –