来自 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"
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在集成测试中使用以下内容。
@Value('${local.server.port}')
Integer port
Run Code Online (Sandbox Code Playgroud)
这将为您提供测试中的端口
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |