Jus*_*oob 3 spring cucumber gradle cucumber-java
所以我最近开始研究 Cucumber 并一直面临这个问题。
正如您所看到的,这是我的 Spring Boot 应用程序 (AcceptanceTests) 中的子模块,因此其中没有主要方法。
这是我的CucumberSpringContextConfiguration班级
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@CucumberContextConfiguration
public class CucumberSpringContextConfiguration {
}
Run Code Online (Sandbox Code Playgroud)
这是我的CucumberIntegrationTest班级
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src\test\resources\feature",
plugin = {"pretty", "html:target\\cucumber"},
glue = "com.#####.########.cucumberspringboot.cucumberglue"
)
public class CucumberIntegrationTest {}
Run Code Online (Sandbox Code Playgroud)
我尝试使用主类(src/main/java)运行此代码,代码编译成功。但由于这不是我的要求,我将其删除,现在我收到以下错误 -
SEVERE: Exception while executing pickle
java.util.concurrent.ExecutionException:
io.cucumber.core.backend.CucumberBackendException: Please annotate a
glue class with some context configuration.
For example:
@CucumberContextConfiguration
@SpringBootTest(classes = TestConfig.class)
public class CucumberSpringConfiguration { }
Or:
@CucumberContextConfiguration
@ContextConfiguration( ... )
public class CucumberSpringConfiguration { }
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at io.cucumber.core.runtime.Runtime.run(Runtime.java:93)
at io.cucumber.core.cli.Main.run(Main.java:92)
at io.cucumber.core.cli.Main.main(Main.java:34)
Caused by: io.cucumber.core.backend.CucumberBackendException:
Please annotate a glue class with some context configuration.
Run Code Online (Sandbox Code Playgroud)
请建议如何在不使用主类的情况下实现这一目标。
Run Code Online (Sandbox Code Playgroud)io.cucumber.core.cli.Main.run(Main.java:92) at io.cucumber.core.cli.Main.main(Main.java:34)
堆栈跟踪的这一部分显示您正在使用 Cucumber CLI 而不是CucumberIntegrationTest. 所以你可能正在通过 IDEA 运行你的功能文件。大概您单击了功能文件装订线中的绿色播放图标。
不幸的是 Intelij IDEA 做出了一些假设和错误的猜测。如果您查看创建的运行配置,您将看到有一个命令行,--glue其参数可能指向features。您必须手动更改此设置。
目前没有必要猜测这个论点,我已经要求 Intelij IDEA 背后的团队在IDEA-243074--glue上修复这个问题,但到目前为止这个问题的关注度为零。你可以投票,也许会发生一些事情。
您还可以通过将功能文件放在不同的位置(例如src/test/resources/com/#####/########/cucumberspringboot. 因为这是 Ingelij IDEA 的父包,cucumberglue不太可能把事情搞砸。
另请注意:您当前正在使用 JUnit 4 来运行 Cucumber。Spring Boot 更喜欢使用 JUnit 5。您应该使用Cucumber JUnit Platform Engine。您可以在这里找到一个最小的示例。
| 归档时间: |
|
| 查看次数: |
9392 次 |
| 最近记录: |