gpt4 book ai didi

grails geb -baseUrl 选项不适用于远程服务

转载 作者:行者123 更新时间:2023-12-04 02:26:29 26 4
gpt4 key购买 nike

我正在使用 grails 2.3.4 的 geb 0.9.2 插件

我想在两个单独的主机上与服务分开运行功能测试。

我观察到以下情况:

如果我在同一主机上运行服务,并执行:

grails test-app functional: -baseUrl=http://localhost:8080/foo/--non-interactive



然后针对这个已经运行的服务运行测试并通过。

如果服务没有运行,而我执行了相同的命令,则在 grails test-app 内启动一个新的服务实例并且针对此运行测试。
(这出乎我的意料)

如果服务在不同的主机上运行,​​比如 http://other:16060/foo/我跑:

grails test-app functional: -baseUrl=http://other:16060/foo/ --non-interactive



...然后启动本地服务并针对该服务而不是针对指定的远程服务运行测试。这又出乎我的意料。

我找不到任何解释这种行为的文档。

是否可以运行test-app针对远程运行的服务?

(我的记忆虽然我最近没有测试过,但这种行为也是 grails 2.2.2 的情况)

最佳答案

这似乎是一个 grails 错误 (?feature)。

Grails 通过连接到服务端口来检查服务是否正在运行。

如果服务没有运行,它会启动一个服务。

问题是:即使baseUrl 指向不同的主机,也总是针对localhost/127.0.0.1 检查服务是否正在运行。

我通过使用 unix nc 工具在 127.0.0.1 上启动一个假服务器来解决它。这足以让 grails 认为该服务已经在运行,而不是启动一个新服务。然后它尊重 baseUrl 并测试远程的。

啊。

关于grails geb -baseUrl 选项不适用于远程服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com