我们在JBehave / Java / Selenium自动化项目的公共文件中有一个@BeforeStories,它为我们的自动化项目中的大多数故事文件执行了一些设置步骤。但是,有一些新的故事文件我们不想在@BeforeStories中运行所有内容。理想情况下,如果它们不适用于每个.story文件,我可以从@BeforeStories中删除其中的一些项目。这实际上是我们的最终目标,但这不是我们现在想要做的事情,因为它会影响很多现有的测试。无论如何,目前,如果我只能覆盖几个故事文件的@BeforeStories,那就行了。然后,我可以将我想要运行的@BeforeStories部分用于新的.story文件,然后省去我不想为我正在创建的新.story文件运行的其他部分。跳过@BeforeStories也适用于这些新的.story文件,因为我可以找到其他方法来处理新的.story文件的必要设置步骤(即添加一个" @ BeforeStory"到新的.story例如,文件来处理新.story文件中必要的设置步骤。可以覆盖或跳过@BeforeStories吗?提前感谢任何建议。
答案 0 :(得分:3)
在我看来,你的最佳解决方案,以及我对我的故事的处理方式,是有一个包含@BeforeStories的基本步骤类,并且只有所有故事所需的共同步骤。然后我在每个步骤类中放置一个@BeforeStory来满足该故事的特定需求。
例如,在我的Appium测试套件中,我放置了代码以启动Appium Server和代码来初始化基类中@BeforeStories中的Extent Reports对象。
但是,由于每个故事都有自己的应用程序,我不会在那里建立连接,而是在每个步骤类的@BeforeStory中进行连接,同时进一步定义Extent Reports对象,并启动模拟器(如果适用)。
我最初在我的基类@BeforeStories中使用了@BeforeStory步骤,直到我有多个故事要运行。