【问题标题】:Cucumber runner not needed anymore?不再需要黄瓜跑者?
【发布时间】:2021-07-24 03:35:00
【问题描述】:

快速提问 - 因为 Cucumber 什么时候不需要任何单独的带有胶合步骤的跑步者类等?将 JUnit 依赖项添加到 pom.xml 后,目前不需要其他任何东西吗?我刚刚设置了一个简单的项目,除了 chromedriver、步骤定义、功能文件和 Selenium/JUnit/Cucumber 依赖项之外我什么都看不到。一直都是这样吗?因为我记得这些项目很难设置,因为那个类和其他一些事情。是我当时只是愚蠢,还是做了一些改变,现在很容易?

【问题讨论】:

  • 显示你的 pom.xml
  • org.seleniumhq.seleniumselenium-java3.141.59junitjunit4.12testio.cucumbercucumber-java 6.10.4test
  • 您能否分享一下您在设置您提到的项目时所遵循的步骤。
  • 你可以试试这个。 ??? cucumber.io/docs/guides/10-minute-tutorial

标签: selenium cucumber


【解决方案1】:

很多事情都得到了改善!只是不是你提到的那件事。

当您使用 CLI(直接或通过 IDEA)时,Cucumber 将在整个类路径中搜索步骤定义和功能文件。这意味着事情通常正常工作

要与 JUnit4 集成,您仍然需要一个运行器类。然而,除非你用@CucumberOptions 告诉它,否则运行器类将在它所在的包和子包中查找特性和粘合。

因此,如果您将所有内容放在正确的组中并且在同一个包中,则不需要额外的配置。你应该好好利用它!

使用 maven 时有一个小问题。如果您将功能文件放在src/test/java 文件夹中,maven 不会将它们复制到您的类路径中。功能应始终进入src/test/resources

~/Projects/cucumber/cucumber-jvm/examples/calculator-java-junit4$ tree
.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── io
    │           └── cucumber
    │               └── examples
    │                   └── calculator
    │                       └── RpnCalculator.java
    └── test
        ├── java
        │   └── io
        │       └── cucumber
        │           └── examples
        │               └── calculator
        │                   ├── RpnCalculatorSteps.java
        │                   └── RunCucumberTest.java
        └── resources
            ├── cucumber.properties
            └── io
                └── cucumber
                    └── examples
                        └── calculator
                            └── basic_arithmetic.feature

您也可以通过 10 分钟教程重新开始:https://cucumber.io/docs/guides/10-minute-tutorial/

【讨论】:

  • 嗯,实际上...我真的没有创建任何 Runner 类,它适用于 JUnit 依赖项。 ?
  • 我希望看到你在 github 存储库中从头开始复制它。
  • 没什么可做的。我刚刚在 Intellij 中创建了一个 Maven 项目,向 pom 添加了 selenium-java、cucumber-java 和 junit4-java 依赖项,创建了 stepdef 类并创建了一个功能文件,就像你上面描述的那样。然后我只是在 stepdef 类中使用了导入,实例化了 chrome 驱动程序(我把它放在 C:\ 中,并将位置添加到 env 变量中的路径中。然后我只运行功能文件,它就可以工作了。15 分钟就完成了。也许是 Intellij 的自动运行配置解决了剩下的问题?Idk,但是没有 Runner 类。
  • 那么我认为您不会使用 JUnit 运行任何测试。您正在使用 IDEA 运行测试,并且可以删除 CucumberJUnit 依赖项。
  • 是的,你说对了一部分。正如我所料,它由 IntelliJ 运行,我可以删除 Junit 依赖项(仅在运行测试方面,因为我没有很多测试工具),但我不能删除 Cucumber 依赖项 - 没有它没有任何作用。最后,我们终于找到了答案:D 希望几年前我尝试学习它时一切都那么简单且构建良好......
猜你喜欢
  • 2021-04-17
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多