SpecRun.SpecFlow 1.2.0与UAP不兼容版本= v10.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对支持的平台相当不明确。
安装的软件包:
答
SpecFlow和SpecRun.SpecFlow不直接支持UAP。
至于解决方法,你可以做到以下几点:
- 创建便携式类库(PCL),并设置目标,以.NET 4.5.1和Windows通用10.0
- 提取要测试的代码并把它放到PCL中 但要小心,你没有完整的.NET Apis 可用。只有您为PCL选择的目标子集。
- 添加到PCL引用您的UAP
- 创建单元测试项目,并添加一个参考PCL
- 添加SpecRun.SpecFlow到单元测试项目
现在你可以使用SpecFlow和单元测试项目中的SpecRun.SpecFlow。
答
的SpecRun.SpecFlow 1.2.0 NuGet包中只包含了.NET 3.5组件,所以你不能把它安装到一个通用的应用程序(UAP)项目。
谢谢你马特!这个包被推荐用于任何.NET测试项目,因此如果这个包限制为3.5,那么为非3.5项目安装SpecFlow的正确方法是什么? –
我在.NET 4.5中使用了SpecFlow。我认为马特只是说你不能将它与专门的“Universall App Project”结合使用。 –