在不同的解决方案中重复使用 SpecFlow 测试脚本

Re-using SpecFlow test scripts in different solutions

我们在不同的 Git 存储库中有不同的 C# Visual Studio 解决方案。每个存储库都包含需要功能测试的源代码,这些测试将与 Azure DevOps 集成。我们的想法是拥有一个单一的 C# 测试自动化框架,其中包含可在所有解决方案中使用的通用步骤、挂钩和逻辑。

我想到的一些想法:

关于如何解决它有什么建议或想法吗?

您可以使用 Bindings from External Assemblies,它允许您创建包含步骤定义和挂钩的通用 class 库,然后在多个测试项目中重复使用它们。

如果在您的测试项目中使用 SpecFlow.json,请添加:

{
  ... other JSON settings for SpecFlow ...

  "stepAssemblies": [
    {
      "assembly": "NameOfYourSharedBindings"
    }
  ]
}

如果使用 App.config:

<specFlow>
  <!-- other SpecFlow settings -->

  <stepAssemblies>
    <stepAssembly assembly="NameOfYourSharedBindings" />
  </stepAssemblies>
</specFlow>

只需将 NameOfYourSharedBindings 替换为包含共享步骤和挂钩的 DLL 文件的文件名。请务必添加对测试项目的项目引用,以便它引用包含共享步骤的 class 库项目。

您不限于同一 Visual Studio 解决方案中另一个项目中的步骤定义。您可以引用预编译的 DLL 文件以及 NuGet 包。所以,实际上,选项 2 或 3 适合您。只需选择最适合您的用例的那个。