[英]How to get the Url where Grails 3.1.9 integration tests are running?
从Grails 3.1.9发行说明:
集成测试端口集成和功能测试现在默认在随机端口上运行,而不是在与应用程序相同的端口上运行。 当应用程序已经在运行时,这是为了避免端口冲突问题。 需要更改硬编码端口的集成测试,才能使用标有@Integration的测试的serverPort属性
我通常使用以下方法获取集成测试网址
import grails.util.Holders ... .. . def urlWhereIntegrationAppIsRunning = Holders.grailsApplication.config.grails.serverURL
然后在我的application.yml
我有类似以下内容:
test: server: port: 8090 grails: serverURL: http://localhost:8090
如何在集成测试中使用Grails 3.19运行集成测试的Url(服务器URL和随机端口)?
根据Marco的回答,我完成了一个Trait来封装运行集成测试的URL。 我在测试我的API的Spock规范中实现了此特征。
import org.springframework.beans.factory.annotation.Value
trait TIntegrationServerUrl {
@Value('${local.server.port}')
Integer serverPort
String integrationServerUrl() {
"http://localhost:$serverPort"
}
}
您可以在集成测试中使用以下内容。
@Value('${local.server.port}')
Integer port
这将为您提供测试中的端口
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.