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主题:
这些标准的使用效果很好,@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主题: