我怎样才能让 JBehave 仅覆盖或跳过几个特定故事的“@BeforeStories”?

How can I get JBehave to either override or skip the "@BeforeStories" for only a few specific stories?

我们的 JBehave / Java / Selenium 自动化项目的公共文件中有一个 @BeforeStories,它执行自动化项目中大多数故事文件所需的一些设置步骤。但是,有一些新的故事文件,我们不想 运行 @BeforeStories 中的所有内容。理想情况下,如果它们不适用于每个 .story 文件,我可以从 @BeforeStories 中删除其中一些项目。这实际上是我们的最终目标,但不是我们现在想要做的事情,因为它会影响很多现有的测试。无论如何,就目前而言,如果我可以仅覆盖几个故事文件的@BeforeStories,那将是可行的。然后,我可以为新的 .story 文件获取我想要 运行 的 @BeforeStories 部分,然后省略我不想为新的 .story 文件 运行 的其他部分我在创造。跳过 @BeforeStories 也适用于这些新的 .story 文件,因为我可以找到其他方法来处理新的 .story 文件的必要设置步骤(即向新的 .story 文件添加“@BeforeStory”以处理必要的例如,在新的 .story 文件中设置步骤)。是否可以覆盖或跳过 @BeforeStories?在此先感谢您的任何建议。

在我看来,您最好的解决方案,以及我对我的故事所做的事情,是有一个基本步骤 class,其中包含 @BeforeStories,并且只有所有故事所需的通用步骤。然后我在每个步骤中放置一个 @BeforeStory class 来满足该故事的特定要求。

例如,在我的 Appium 测试套件中,我将启动 Appium Server 的代码和初始化我的 Extent Reports 对象的代码放在基础 class.[=10= 的 @BeforeStories 中]

但是,由于每个故事都有自己的应用程序,我没有在那里建立连接,而是在每个步骤的@BeforeStory 中建立连接class,同时进一步定义 Extent Reports 对象,然后启动模拟器,如果适用。

我最初在我的基地 class @BeforeStories 中有那些 @BeforeStory 步骤,直到我有多个故事要 运行。