作为 ./gradlew 检查的一部分,如何运行我的 grails-5 应用程序的黄瓜测试?
Posted
技术标签:
【中文标题】作为 ./gradlew 检查的一部分,如何运行我的 grails-5 应用程序的黄瓜测试?【英文标题】:How can I run my grails-5 app's cucumber tests as part of ./gradlew check? 【发布时间】:2022-01-11 07:00:50 【问题描述】:我正在编写一个 Grails-5,并且我正在使用 Cucumber 进行 BDD。我已经按照以下教程进行操作:https://www.baeldung.com/java-cucumber-gradle
我可以使用以下方法运行我的单元测试:
$ ./gradlew check
我可以通过在一个 shell 中启动服务器来运行我的黄瓜 BDD 测试:
$ ./gradlew server:bootRun
并在另一个中调用测试:
$ ./gradlew cucumberCli
是否可以将build.gradle
配置为让./gradlew check
运行单元测试,然后启动服务器,然后运行黄瓜测试,最后将服务器关闭?
如果可能的话,如果黄瓜基础设施能够在每次测试之间启动和停止服务器会更好。这样,每个测试都会以已知状态开始。
【问题讨论】:
【参考方案1】:我设法通过在我的StepDefinitions.groovy
文件中添加@Before
和@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()
【讨论】:
以上是关于作为 ./gradlew 检查的一部分,如何运行我的 grails-5 应用程序的黄瓜测试?的主要内容,如果未能解决你的问题,请参考以下文章
错误记录在 Android Studio 的 Terminal 终端执行 gradlew 报错 ( 无法将“gradlew”项识别为 cmdlet函数脚本文件或可运行程序的名称。请检查名称 )
禁用插件并使用./gradlew:app:dependencies检查依赖关系树