【问题标题】:cucumber feature file to run in order黄瓜功能文件按顺序运行
【发布时间】:2018-04-11 01:13:32
【问题描述】:

问题:我需要运行我的 cucumber .feature 文件以按我定义的顺序执行,而不是按默认顺序运行,即文件夹结构。

我正在为使用 cucumber .features 文件构建的 Android 原生应用程序运行 Appium。 在 Windows 机器上,在实际设备上运行。

现在我的 Runcuckers 文件如下所示:

package runner;

import org.junit.runner.RunWith;
import org.testng.annotations.Test;

 import cucumber.api.CucumberOptions;
 import cucumber.api.junit.Cucumber;
 import cucumber.api.testng.AbstractTestNGCucumberTests;

 //@RunWith(Cucumber.class)

 @CucumberOptions(features = { "src/test/java/features" }, 
             glue = { "Steps" }, 
             monochrome = true, 
             tags = {  "@CustomerInsightsSurveyPopupGiveFeedback,"
                     + "@TestAccountSceanrios"
                     + "@ShortlistPage,"
                     + "@SavedSearchesPage,"
                     + "@SearchResultPage,"
                     + "@Short,"
                     + "@SuggestedSearch" })

        // public class RunCucke {
         public class RunCucke extends AbstractTestNGCucumberTests {
           }

【问题讨论】:

    标签: java cucumber appium cucumber-java


    【解决方案1】:

    按顺序运行功能或场景是错误的方式。

    在所有测试中,将一个测试链接到另一个测试是一种反模式。它使您的测试变得脆弱且难以调试。每个测试都应该独立于其他所有测试。

    在 Cucumber 中,您使用 Givens 来设置场景的状态。什么时候真正做点什么。然后是检查你的结果。您的场景 Given 应包括设置应用程序所需的一切,以便您可以在何时执行。

    Cucumber 鼓励您以随机顺序运行场景,并在每个场景之间重置几乎所有内容。不要违背这一点,如果你这样做,你会让事情变得更加困难。

    【讨论】:

    • 这可能适用于小型测试。但是当我们进行旅程和复合旅程时,存在依赖关系。将所有内容放在一个功能文件中非常困难。在这种情况下有什么替代方法可以使用?定义一组测试的顺序是我的要求。使用标签并不能解决问题。唯一的方法是对每个组进行多次运行,并在一个组中命名功能文件的顺序。但这看起来并不干净和好。应该有办法扩展cucumber运行时,提供配置文件会对我们有所帮助。
    • No Mujibur 对于所有规模的所有测试都是如此。任何过程,无论多么复杂,都可以用简单的形式表达出来。以同样的方式,任何简单的事物都可以表示为许多更小的组件。 Cucumber 鼓励你使用的权力是使用更高的抽象来表达事物,例如When I build a car 而不是 When I assemble the wheels, brakes, engine ...。你需要做的是改变你思考问题的方式,而不是试图改变 Cucumber。
    猜你喜欢
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2015-05-04
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多