黄瓜测试没有按指定的顺序运行,出了什么问题?

时间:2018-02-06 08:51:59

标签: android kotlin automated-tests cucumber

所以这是我的问题:我有一组测试,我想按特定顺序运行。在this问题中,我发现您可以简单地记下测试的顺序,因为您希望它们运行。

不幸的是,由于我无法看到的原因,这似乎没有在我的Kotlin实现上运行。

这就是我所拥有的:

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

附加信息:所有测试都在同一目录中,所有测试名称都是特定的 - 我已将其重命名为可读性。

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

它曾经按顺序执行的事实只是您碰巧注意到的实现细节 - 无法保证场景的执行顺序。事实上,依赖于场景的执行顺序是不好的做法 - 我从这里的经验谈起并强烈建议你改变你这样做的方式。

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

答案 1 :(得分:0)

您可以重命名要素文件,黄瓜将按照您想要的顺序开始运行

例如:

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

这将使黄瓜按顺序运行01和02,然后运行03.

请注意,这是为了应对测试用例依赖性而可以实现的最后一种方法。

答案 2 :(得分:0)

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