如何为 Allure 附件标题插入变量名称,例如步骤或方法名称?

How can I insert a variable name for Allure Attachments titles such as Step or method name?

我正在为一个 Java 项目使用 Allure 测试框架。 我只允许在定义附件名称时在注释中使用常量。

例如:

@Attachment(value = "My Screenshot", type = "image/png")
public byte[] saveScreenshot(byte[] screenShot) {
    return screenShot;
}

参考 value,如果我将其用于多个步骤,它们将始终出现在报告中,标题为 My Screenshot

我怎样才能让它像 Allure @Step 注释那样更加动态,即在字符串中使用 {0} 和方法名称 {method} 等参数?

附件使用与 @Step 注释相同的占位符。

  • {N} 其中 N 是一个从零开始的正整数,它将被第 N 个方法参数值替换(0 对应于第一个参数, 1 到第二个,依此类推)。

    @Attachment("Taking Screenshot because {0}")
    public byte[] saveScreenshot(String whyIAmAttachingScreenshot) {
        //take screenshot
    }
    
  • {method} 将被注解的方法名替换。

    @Attachment("My Screenshot from {method}")
    public byte[] saveScreenshot() {
        return screenShot;
    }
    

更多信息您可以查看wiki

在 allure 2.0 中,我发现 {0} {1} .. {N} 不起作用。 它给出了错误:

ERROR io.qameta.allure.util.NamingUtils - Could not find parameter 1

相反,您可以使用花括号中的变量名:

@Attachment("Taking Screenshot because {whyIAmAttachingScreenshot}")
public byte[] saveScreenshot(String whyIAmAttachingScreenshot) {
    //take screenshot
}