繁体   English   中英

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

[英]Re-using SpecFlow test scripts in different solutions

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

我想出的一些想法:

  • 拥有一个带有自动化框架文件的单独存储库,只需为每个解决方案/存储库复制和粘贴挂钩、步骤、配置文件等。
  • 在每个解决方案/存储库中创建一个 SpecFlow 项目,并为每个解决方案维护一个自动化框架。
  • 使用 NuGet 打包测试框架并将其安装到每个解决方案中。 我个人喜欢最后一种方法,但我不确定如何实现。

关于如何解决它的任何建议或想法?

您可以使用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 对你有用。 只需选择对您的用例最有意义的一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM