SpecRun.SpecFlow 1.2.0与UAP不兼容,版本= v10.0

时间:2015-12-02 19:39:08

标签: .net testing nuget win-universal-app specflow

我们编写了一个通用Windows应用程序,并希望使用SpecFlow进行测试。我们创建了一个通用Windows测试项目。尝试安装SpecRun.SpecFlow NuGet包失败,并显示以下错误:

    ...
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 个答案:

答案 0 :(得分:2)

SpecRun.SpecFlow 1.2.0 NuGet包仅包含.NET 3.5的程序集,因此您无法将其安装到Universal App(UAP)项目中。

答案 1 :(得分:2)

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

作为解决方法,您可以执行以下操作:

  • 创建可移植类库(PCL)并将目标设置为.Net 4.5.1和Windows Universal 10.0
  • 提取您要测试的代码并将其放入PCL 但要小心,你没有完整的.NET Apis 可用。仅为您为PCL选择的目标子集。
  • 在UAP中添加对PCL的引用
  • 创建单元测试项目并添加对PCL的引用
  • 将SpecRun.SpecFlow添加到单元测试项目

现在,您可以在单元测试项目中使用SpecFlow和SpecRun.SpecFlow。