Eclipse(STS 4.17.1)中Cucumber Java最简示例完整运行问题求助
我刚接触Cucumber,试了好几个不太完整的教程都没完全跑通,现在想把Cucumber官方的Java skeleton示例跑起来。我用的是STS 4.17.1(基于Eclipse),通过「Import Existing Maven Project」导入了这个项目。
目前能正常运行的情况
补完两个缺失的步骤后,不管是用Eclipse的Cucumber插件以「Run as Cucumber feature」运行,还是执行mvn test命令,都能正常跑通测试,输出如下:
Scenario: a few cukes # src/test/resources/io/cucumber/skeleton/belly.feature:3
Given I have 42 cukes in my belly # io.cucumber.skeleton.StepDefinitions.I_have_cukes_in_my_belly(int)
When I wait 1 hour # io.cucumber.skeleton.StepDefinitions.i_wait_hour(java.lang.Integer)
growl !
Then my belly should growl # io.cucumber.skeleton.StepDefinitions.my_belly_should_growl()1 Scenarios (1 passed)
3 Steps (3 passed)
0m1,134s
遇到的问题(重点是第3、4项)
运行时Eclipse输出开头会有个警告,不确定会不会影响后续问题:
janv. 31, 2023 3:23:38 PM cucumber.api.cli.Main run
WARNING: You are using deprecated Main class. Please use io.cucumber.core.cli.Main
具体问题如下:
- 控制台输出顺序异常:
growl !是在Then my belly should growl步骤的代码里通过System.out.println("growl !");打印的,但实际输出里它出现在这个步骤的前面。 - 已配置静默但仍弹出报告提示:我已经在对应配置文件里设置了
cucumber.publish.quiet=true,但还是会弹出Cucumber报告分享的提示框:┌───────────────────────────────────────────────────────────────────────────────────┐
│ Share your Cucumber Report with your team at https://reports.cucumber.io │
│ Activate publishing with one of the following: │
│ │
│ src/test/resources/cucumber.properties: cucumber.publish.enabled=true │
│ src/test/resources/junit-platform.properties: cucumber.publish.enabled=true │
│ Environment variable: CUCUMBER_PUBLISH_ENABLED=true │
│ JUnit: @CucumberOptions(publish = true) │
│ │
│ More information at https://cucumber.io/docs/cucumber/environment-variables/ │
│ │
│ Disable this message with one of the following: │
│ │
│ src/test/resources/cucumber.properties: cucumber.publish.quiet=true │
│ src/test/resources/junit-platform.properties: cucumber.publish.quiet=true │
└───────────────────────────────────────────────────────────────────────────────────┘ - 重点问题1:Maven的
target目录里没有生成任何Cucumber报告 - 重点问题2:在Eclipse里以「Run as JUnit」运行
RunCucumberTest类时,会报错:org.junit.platform.suite.engine.NoTestsDiscoveredException: Suite [io.cucumber.skeleton.RunCucumberTest] did not discover any tests
我希望能在Eclipse里正常看到Cucumber测试的可视化结果,或者至少能在target目录生成HTML格式的Cucumber报告,求各位大佬帮忙解决这些问题!
备注:内容来源于stack exchange,提问作者Tristan

