【问题标题】:Re-using SpecFlow test scripts in different solutions在不同的解决方案中重用 SpecFlow 测试脚本
【发布时间】:2021-06-07 22:04:05
【问题描述】:

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

我想出的一些想法:

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

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

【问题讨论】:

  • 我们不使用 Specflow,只在 Visual Studio 中使用 C#/Selenium 和 MSTest。我们基本上使用您上面概述的第一个要点方法。不是最好的解决方案,但这就是我们所做的。它更像是人们可以参考的视觉指南,并根据需要复制和粘贴片段

标签: c# visual-studio ui-automation specflow


【解决方案1】:

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

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

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

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

如果使用 App.config:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多