来自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。我在Spock的规范中实现了这个特性,我测试了我的API。
import org.springframework.beans.factory.annotation.Value
trait TIntegrationServerUrl {
@Value('${local.server.port}')
Integer serverPort
String integrationServerUrl() {
"http://localhost:$serverPort"
}
}
答案 0 :(得分:4)
您可以在集成测试中使用以下内容。
@Value('${local.server.port}')
Integer port
这将为您提供测试中的端口