Junit & Allure Reporting 2 - 我们如何以编程方式设置 Issue 和 TmsLink?

Junit & Allure Reporting 2 - How can we programmatically set Issue and TmsLink?

这些标准的使用效果很好,@TmsLink("foo") @Issue("bar) 但是 在使用数据提供者场景时,我如何以编程方式设置@Test 方法每次迭代的这些值?

我的测试数据的每个 csv 条目都将包含 TmsLink 和 Issue 的 Id,我如何才能使每个测试集都有自己的用于良好的报告目的?我们可以使用看起来像简单枚举的 SeverityLevel 来做到这一点,但是 Issue/TmsLink 是在 Method/Type 处与 @Target 的接口 only

 SeverityLevel severity = severityLevel.CRITICAL;


package io.qameta.allure;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Used to link tests with issues.
 */
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(Issues.class)
public @interface Issue {

    String value();

}

谢谢。

对于后来遇到这个问题的任何人,我通过在运行时覆盖注释值来解决这个问题,它并不令人惊奇,但它确实有效,我写了一篇博客 post主题:

https://symonk.github.io/2017-10-26-overriding-allure-reporting-annotational-values-at-runtime-for-issue-tmslink-displayname/