如何使用@Step注解在Allure Report中打印长字符串?
我来帮你搞定Allure Report里@Step长文本被截断显示省略号的问题,这里有几个实用的解决方案:
方案1:调整Allure的截断长度配置
Allure默认会对Step的描述文本进行截断,你可以通过配置参数修改这个行为。只需要在项目的src/test/resources目录下创建或修改allure.properties文件,添加以下配置:
# 设置为-1表示完全不截断,也可以设置一个足够大的数值(比如10000) allure.step.description.max.length=-1
这个配置会全局调整Step描述的最大显示长度,设置为-1后所有长文本都会完整展示。
方案2:用Allure Attachment展示完整内容
如果不想全局修改配置,或者希望在保留Step简洁显示的同时提供完整文本,可以在你的info方法中添加Allure附件,把长文本单独作为附件存储,在报告中点击附件就能查看完整内容:
import io.qameta.allure.Allure; import io.qameta.allure.Step; @Step("LOG.INFO : {message}") public static void info(String message){ System.out.println(message); // 添加附件,第一个参数是附件名称,第二个是附件内容 Allure.addAttachment("完整日志详情", message); }
这样在Allure Report里,你的Step会显示截断的文本(如果配置没改的话),但下方会多出一个“完整日志详情”的附件,点击就能看到全部内容。
方案3:自定义Allure报告模板(进阶)
如果需要完全自定义Step的显示逻辑,可以修改Allure的Freemarker模板。在src/test/resources/allure-report/templates目录下找到step.ftl文件(如果没有就从Allure的jar包中复制一份),找到处理描述的代码段,去掉截断相关的逻辑。比如原本的模板可能有类似${truncate(step.description, config.stepDescriptionMaxLength)}的代码,把truncate函数去掉,直接用${step.description}即可。
这个方法适合需要全局统一修改显示样式的场景,但需要你对Freemarker模板语法有一定了解。
注意:如果使用的是Allure旧版本,方案1中的配置参数可能不同,比如早期版本用的是
allure.report.step.description.limit,需要对应调整参数名称。
内容的提问来源于stack exchange,提问作者Priya Priyadarshini

