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



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

我想到了一些主意:

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

对于如何解决这个问题有什么建议或想法吗?

您可以使用来自外部程序集的绑定,它允许您创建包含步骤定义和钩子的通用类库,然后在多个测试项目中重用它们。

如果使用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对你来说是可行的。只要选择一个对你的用例最有意义的。

相关内容

最新更新