java测试Spring启动应用程序
有人知道我在哪里可以找到Cucumber通过Gradle测试Spring Boot应用程序的示例应用程序吗?我可以在cmd行上启动服务器并使用IDE来运行测试,但我需要能够在CI服务器上以编程方式运行所有测试。我在这里看到了答案,但该解决方案对我不起作用,很可能是因为我有多个step def文件
这是我的设置
建造。等级(在另一个问题中提到)
testCompile ("org.springframework.boot:spring-boot-starter-test",
...
"info.cukes:cucumber-spring:${cucumberVersion}")
黄瓜试验。爪哇
@RunWith(Cucumber.class)
@CucumberOptions(format = "pretty", features = "src/test/resources")
public class CucumberTest{
}
抽象测试。java(由所有StepDef文件扩展)
@SpringApplicationConfiguration(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class)
@Ignore
public abstract class AbstractSpringTest
{ ... }
它在启动时没有做正确的事情,因为它是1。正在尝试初始化我的step def文件和2。我的应用程序未启动,cucumber测试无法建立连接
谢谢
编辑:或者如果有人可以告诉我如何使用gradle启动和停止应用程序,这也是可以接受的
# 1 楼答案
我有一个类似的症状,我的黄瓜在春天不会启动
事实证明,我忽略了(其中一个)以下依赖项:
构建。格拉德尔
StepDefs。java
更新:SpringBoot 1.5.1
# 2 楼答案
我在this question的帮助下解决了这个问题
以下是答案的存储库: https://github.com/jakehschwartz/spring-boot-cucumber-example
简而言之,
AbstractSpringTest
类需要有以下注释:# 3 楼答案
首先,您需要确保gradle中有applied spring-boot。调用
gradle build
,它将生成一个可运行的jar。不要将Spring类的清单调用作为主类,而是使用一个包装器,在线程中启动它,waits for it to settle down并运行Cucumber:# 4 楼答案
我这样做是为了让Spring使用JUnit参数化测试。黄瓜的概念应该是一样的,但我还没试过。我使用的是XML配置,所以这可能会有所不同
RunWithSpringJUnit4
黄瓜测试
# 5 楼答案
关于@jakehschwartz,如果您希望web应用程序在随机可用端口上启动,AbstractSpringTest需要: