我正在写一个Grails-5,我用黄瓜作为BDD。我在:https://www.baeldung.com/java-cucumber-gradle上学习了这个教程
我可以使用以下方法运行单元测试:
$ ./gradlew check我可以通过在一个shell中启动服务器来运行我的黄瓜BDD测试:
$ ./gradlew server:bootRun并调用另一个测试:
$ ./gradlew cucumberCli是否有可能以这样一种方式配置build.gradle:让./gradlew check运行单元测试,然后启动服务器,然后运行黄瓜测试,最后恢复服务器?
如果有可能的话,如果黄瓜基础结构能够在每个测试之间启动和停止服务器,那就更好了。这样,每个测试都会在已知的状态下开始。
发布于 2021-12-06 12:40:28
通过将@Before和@After步骤添加到@After文件中,我成功地完成了这一任务:
def serverProcess
private String getBaseUrl() {
return "http://localhost/"
}
@Before
public void startServer() {
try {
serverProcess=Runtime.getRuntime().exec("../gradlew bootRun")
} catch (IOException e) {
e.printStackTrace()
}
def done = false
while(!done) {
try {
done = new URL(getBaseUrl()).openConnection().getResponseCode() == 200
} catch(Exception e) {
Thread.sleep(500)
}
}
}
@After
public void stopServer() {
serverProcess.destroy()
}https://stackoverflow.com/questions/70239224
复制相似问题