【发布时间】:2015-08-20 11:23:46
【问题描述】:
有谁知道我在哪里可以找到使用 Cucumber 通过 Gradle 测试 Spring Boot 应用程序的示例应用程序?我可以在 cmd 行上启动服务器并使用我的 IDE 运行测试,但我需要能够在 CI 服务器上以编程方式运行它们。我在这里看到了答案,但该解决方案对我不起作用,很可能是因为我有多个步骤 def 文件。
这是我的设置
build.grade(在另一个问题中提到)
testCompile ("org.springframework.boot:spring-boot-starter-test",
...
"info.cukes:cucumber-spring:${cucumberVersion}")
CucumberTest.java
@RunWith(Cucumber.class)
@CucumberOptions(format = "pretty", features = "src/test/resources")
public class CucumberTest{
}
AbstractSpringTest.java(由所有 StepDef 文件扩展)
@SpringApplicationConfiguration(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class)
@Ignore
public abstract class AbstractSpringTest
{ ... }
它在启动时没有做正确的事情,因为它 1. 尝试初始化我的 step def 文件和 2. 我的应用程序没有启动并且 cucumber 测试无法建立连接。
谢谢。
编辑:或者如果有人可以告诉我如何使用 gradle 启动和停止应用程序,那也是可以接受的。
【问题讨论】:
-
在您的 gradle 配置中启动 spring-boot,然后再执行您的黄瓜测试用例。因为在执行黄瓜测试用例之前,您的 spring-boot 应用程序应该处于运行状态。
-
我对 groovy/gradle 了解不多,你能给我举个例子吗?它为我的集成测试启动,所以我想我可以使用类似的机制。
-
你试过
@IntegrationTest。据我所知,这将启动您的网络服务器等。我还在黄瓜弹簧旁边使用`testCompile group:'info.cukes',名称:'cucumber-junit',版本:cucumberVersion`。您可以在 ide 中将黄瓜测试作为 junit 测试运行吗? -
是的,我已经包含了 cucumber-junit。我无法从 IDE 将我的黄瓜测试作为 junit 测试运行。将@IntegrationTest 添加到我的 CucumberTest 类并以junit 运行该类并没有解决我的问题。
-
您是否尝试过为测试配置上下文?
@ContextConfiguration(classes = YourAppConfig.class, loader = SpringApplicationContextLoader.class)和@IntegrationTest可以通过您的 IDE 运行您的应用程序吗?还是不能运行?
标签: java spring spring-boot cucumber-jvm