從Grails的3.1.9 RELASE筆記:如何獲得運行Grails 3.1.9集成測試的Url?
集成測試端口 集成和功能測試,現在一個隨機端口 而不是相同的端口默認情況下,應用程序上運行。 這是爲了避免應用程序 已在運行時出現端口衝突問題。集成測試是硬編碼端口 將需要進行修改,以使用的標有@Integration
我通常與
import grails.util.Holders ... .. . def urlWhereIntegrationAppIsRunning = Holders.grailsApplication.config.grails.serverURL
獲得集成測試網址,然後測試 serverPort財產在我的 application.yml
我有類似的東西:
test: server: port: 8090 grails: serverURL: http://localhost:8090
如何在集成測試中使用Grails 3.19運行集成測試的Url(服務器url和隨機端口)?
解決方案
基於馬可的答案,我已經做了特質封裝的URL集成測試在何處運行。我在測試我的API的Spock規範中實現了這個特性。
import org.springframework.beans.factory.annotation.Value
trait TIntegrationServerUrl {
@Value('${local.server.port}')
Integer serverPort
String integrationServerUrl() {
"http://localhost:$serverPort"
}
}