Allure Framework:在TestNG和Maven中使用@Step和@Attachment注释

时间:2014-08-06 15:05:52

标签: java maven junit testng allure

我正在开发一个使用Allure framework与Java,TestNG和Maven的项目。 但是,在我的Java程序中使用Allure @Step和@Attachment注释时,我无法生成正确的XML文件。任何展示上述注释用法的示例代码均受到赞赏。 我正在使用Allure 1.4.0.RC8。

2 个答案:

答案 0 :(得分:5)

这些注释与任何基于Java的测试框架以相同的方式使用。

创建一个步骤:

  • 使用任何可见性修饰符(public,private,protected)创建具有步骤逻辑的方法,并使用@Step注释对其进行注释。您可以选择在注释属性中指定步骤名称。
  • 在测试方法中调用此方法。

一个例子:

@Test
public void someTest() throws Exception {
    //Some code...
    stepLogic();
    //Some more assertions...
}

@Step("This is step 1")
private void step1Logic() {
    // Step1 implementation
} 

@Step("This is step 2")
private void step2Logic() {
    // Step2 implementation
}

创建附件:

  • 创建具有任何可见性的方法,该方法返回 byte [] - 附件内容并使用 @Attachment 注释对其进行注释。
  • 在任何测试中调用此方法

示例:

@Test
public void someTest() throws Exception {
    //Some code...
    createAttachment();
    //Some more assertions...
}

@Attachment(name = "My cool attachment")
private byte[] createAttachment() {
    String content = "attachmentContent";
    return content.getBytes();
} 

为了使 @Step @Attachment 注释工作,您需要在配置中正确启用AspectJ。这通常通过指向 aspectj-weaver.jar 文件的 -javaagent JVM参数来完成。

进一步阅读:

答案 1 :(得分:0)

您还可以将参数用于 @Step 注释。例如,如果该方法接受一些变量:

@Step("Get the maximum between {a} and {b}")
public int max(int a, int b){
    //implementation
}

如果你需要使用任何对象,你可以重写toString()方法,或者使用需要的参数:

public class User {

     private String name;
     private String password;
     ...
}

@Step("Type {user.name} / {user.password}.")
public void loginWith(User user) {
     ...
}