有没有办法在Grails集成测试中获取应用程序URL?

该网址应包括:

  • 服务器名称
  • 端口
  • contextPath

  • 例如“本地主机:8080 / appname”

    我不在乎该协议(protocol)是否包含在内。

    我正在寻找一种在运行时执行此操作的方法-将网址硬编码为例如Config.groovy没有用。

    最佳答案

    这是一种丑陋的方式。

    首先,将grailsLinkGenerator bean注入(inject)到集成测试中:

    def grailsLinkGenerator
    

    然后,自己构造服务器URL:
    grailsLinkGenerator.serverBaseURL + ':' +
            (System.properties['server.port']?:'8080') +
            grailsLinkGenerator.contextPath
    

    10-04 13:06