2016-07-07 64 views
2

從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" 
    } 
} 

回答

4

您可以在集成測試中使用以下內容。

@Value('${local.server.port}') 
Integer port 

這將使你在測試端口