如何重用来自不同解决方案的 SpecFlow 步骤

How to reuse SpecFlow steps from a different solution

我是 SpecFlow 的新手,我想在解决方案之间重复使用 steps/tests(基本上是 .feature 文件)。我知道有一种方法可以通过添加对项目的引用来重用同一解决方案中的项目之间的步骤,但我不确定如何对不同的解决方案做本质上相同的事情。感谢您对此的任何帮助。

我认为不可能使用来自不同解决方案的步骤。您需要将它们包含在您的工作解决方案中的某个地方才能使用它们。我认为 Visual Studio 没有让您使用解决方案间代码的选项,除非您已经编译它并在您的工作解决方案中引用它。

您不能重复使用 .feature 文件,但可以重复使用步骤定义和挂钩。

您必须添加对该项目的引用。

这里是 link 如何引用 Visual studio 中的项目:Link

这样做有点反模式。拥有功能文件的原因是讨论应用程序做什么以及为什么它很重要。所以特性文件应该包含你的应用领域特有的东西,并且项目之间不会有太多的重叠

当您以这种方式编写功能时,即使是常见的功能也不值得分享,因为复杂性超过了重新做事的简单性。

例如,在应用程序之间共享登录的时机已经成熟,但您在功能中所需要的只是

Given I am registered
When I login
Then I should be logged in

这非常简单,只需为您的第二个应用程序再写一个就更容易了。

其他年份人们分享的大多数步骤都是关于事情如何完成的,例如单击内容、填写字段等。这些通常会导致场景臃肿,而且成本再次超过收益。

如果您仍然觉得您的应用程序之间存在很多共享行为,则您可能遇到架构问题,您需要将共享行为提取到它自己的应用程序中,并让您的应用程序委派责任。