黄瓜测试不按指定顺序运行,有什么不对?

所以这是我的问题:我有一套测试,我想按特定的顺序运行。 在这个问题中,我发现你可以简单地写下你想要的测试顺序。

不幸的是,这似乎没有运行在我的Kotlin实现,因为我看不到的原因。

这是我的:

@CucumberOptions(features = ["features/test1.feature", "features/test2.feature", "features/test3.feature", "features/test4.feature", "features/test5.feature"]) 

其他信息:所有的测试都在同一个目录下,所有的测试名称都是特定的 – 为了便于阅读,我在这里重新命名了它们。

有什么建议么?

它曾经按顺序执行的事实只是您偶然注意到的实现细节 – 不能保证场景的执行顺序。 事实上,依赖于执行顺序是一个糟糕的做法 – 我从这里讲经验,强烈建议你改变你这样做的方式。

我们最终提出的解决方案是在后台需要一个步骤,例如“给我登录为USER / PASSWORD”。 如果登录是非常昂贵的,你可以考虑使用Cucumber钩@Before并在某种World对象中缓存登录。

您可以重命名这些function文件,黄瓜会以您想要的顺序开始运行它们

例如:

 01Featurefile.feature 02Featurefile.feature 03Featurefile.feature 

这将使黄瓜运行01和02,然后03。

请注意,这是为了处理测试用例依赖性而运行的最后一种方法。

对于常见的unit testing,您可以使用注释@org.junit.FixMethodOrder(MethodSorters.JVM) 。 在这种情况下,方法将以字母开始。