黄瓜测试弹簧靴应用程序

2022-09-01 19:22:44

有谁知道我在哪里可以找到一个示例应用程序,其中Cucumber用于通过Gradle测试Spring Boot应用程序?我可以很好地运行测试,在cmd行上启动服务器并使用我的IDE,但我需要能够在CI服务器上以编程方式运行它们。我在这里看到了答案,但该解决方案对我不起作用,很可能是因为我有多个步骤def文件。

这是我的设置

build.grade(在另一个问题中提到)

testCompile ("org.springframework.boot:spring-boot-starter-test",
    ...
    "info.cukes:cucumber-spring:${cucumberVersion}")

黄瓜测试.java

@RunWith(Cucumber.class)
@CucumberOptions(format = "pretty", features = "src/test/resources")
public class CucumberTest{
}

摘要SpringTest.java(由所有 StepDef 文件扩展)

@SpringApplicationConfiguration(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class)
@Ignore
public abstract class AbstractSpringTest
{ ... }

它在启动时没有做正确的事情,因为它的1。尝试初始化我的步骤def文件和2。我的应用程序未启动,黄瓜测试无法建立连接。

谢谢。

编辑:或者如果有人可以告诉我如何使用gradle启动和停止应用程序,那也是可以接受的。


答案 1

我已经从这个问题中得到了一些帮助。

以下是包含答案的存储库:https://github.com/jakehschwartz/spring-boot-cucumber-example

简而言之,该类需要具有以下注释:AbstractSpringTest

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = DemoApplication.class, loader = SpringApplicationContextLoader.class)
@WebAppConfiguration
@IntegrationTest

答案 2

我有类似的症状,我的黄瓜不会启动春天的背景......

事实证明,我错过了(其中之一)以下依赖项:

build.gradle

testCompile "info.cukes:cucumber-junit:1.2.4"
testCompile "info.cukes:cucumber-java:1.2.4"
testCompile "info.cukes:cucumber-spring:1.2.4"

StepDefs.java

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
        loader = SpringApplicationContextLoader.class,
        classes = Application.class
)
@WebIntegrationTest(randomPort = true)
public class StepDefs {

    @Value("${local.server.port}")
    int port;

}

更新: SpringBoot 1.5.1

@ContextConfiguration(
        loader = SpringBootContextLoader.class,
        classes = Application.class
)

推荐