1

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

例如:

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

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

我怎样才能使它像 Allure@Step注释那样更具动态性,即在字符串中使用诸如{0}和方法名称之类的参数{method}

4

2 回答 2

5

@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

于 2015-03-30T05:57:07.880 回答
2

在 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
}
于 2018-02-13T22:58:47.967 回答