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

SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0

我们已经编写了一个通用 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 对支持的平台相当不明确。

已安装的软件包:

SpecRun.SpecFlow1.2.0 NuGet 包仅包含 .NET 3.5 程序集,因此您无法将其安装到通用应用程序 (UAP) 项目中。

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

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

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

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