You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Serenity-Cucumber至3.4.2后@DefaultUrl无法读取serenity.config

问题解决:Serenity-Cucumber 3.4.2中@DefaultUrl读取配置报错

问题现象

升级Serenity-Cucumber到3.4.2版本后,运行测试时抛出断言错误:

java.lang.AssertionError: Invalid URL: page:signin.url
at net.serenitybdd.core.pages.PageUrls.verified(PageUrls.java:80)

原通过@DefaultUrl("page:signin.url")从serenity.config读取URL的方式失效,但使用静态URL(如@DefaultUrl("https://dev-signin.com"))可正常运行。

相关代码与配置:

页面类代码

@DefaultUrl("page:signin.url")
public class SigninPage extends PageObject { ... }

serenity.config配置

environments {
prod { signin.url = "https://signin.com" }
dev { signin.url = "https://dev-signin.com" }
default { signin.url = "https://dev-signin.com" }
all { admin.signin.url = "#{signin.url}/admin" }
}

原因分析

Serenity 3.4.x版本调整了配置引用语法规则,移除了旧版本中page:前缀的配置引用方式,要求直接使用EL表达式#{}来引用配置键。

解决方案

修改页面类中的@DefaultUrl注解,将page:signin.url替换为#{signin.url}即可:

@DefaultUrl("#{signin.url}")
public class SigninPage extends PageObject { ... }

修改后即可正常从serenity.config中读取对应环境的URL配置,无需改动配置文件内容。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:15:27