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

如何让Serenity将参数值包裹在<pre>标签中以正确显示报告格式?

让Serenity测试报告用
标签保留参数的空格与换行格式 

没问题!要实现这个需求,你可以通过自定义Serenity的参数处理逻辑或者直接在步骤注解里嵌入HTML格式,下面是两种具体的实现方式:

方案1:全局自定义参数转换器

如果希望所有字符串类型的参数都自动被<pre>标签包裹,你可以创建一个自定义的参数转换器,让Serenity全局应用这个规则:

  1. 首先创建一个实现ParameterConverter接口的类:
import net.thucydides.core.converters.ParameterConverter;

public class PreTagParameterConverter implements ParameterConverter {

    @Override
    public Object convert(Object original, Class<?> targetType) {
        // 只处理字符串类型的参数
        if (original instanceof String) {
            return "<pre>" + original + "</pre>";
        }
        // 非字符串参数保持原样
        return original;
    }
}
  1. 接着在serenity.properties配置文件中指定这个转换器:
serenity.parameter.converter=com.yourpackage.PreTagParameterConverter

替换com.yourpackage为你实际的包路径即可。这样所有字符串参数都会自动被<pre>包裹,报告里的空格、换行就能完美保留了。

方案2:针对特定步骤手动设置HTML格式

如果只需要在个别步骤中应用这个格式,直接在@Step注解里嵌入<pre>标签更灵活:

比如你的步骤定义可以写成这样:

import net.thucydides.core.annotations.Step;

public class YourSteps {

    @Step("提交以下数据:<pre>{0}</pre>")
    public void submitGivenData(String inputData) {
        // 这里写你的提交逻辑,比如调用API接口
    }

    @Step("条目已更新为以下数据:<pre>{0}</pre>")
    public void verifyEntryIsUpdated(String expectedTable) {
        // 这里写你的验证逻辑,比如对比返回结果
    }
}

当你传入带有换行和空格的表格数据时,<pre>标签会让报告里的内容保持原始格式。比如你示例中的表格,可以先把它转换成带有换行的字符串再传入:

String expectedTable = "| status   | entry_id |\n| PROCESSED | xxxx     |";
verifyEntryIsUpdated(expectedTable);

这样测试报告里就会正确显示表格的格式啦。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:23:45