You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现基于自定义@Jira注解的JUnit Test Suite选择器?

自定义JUnit套件筛选带@Jira注解的测试用例

问题背景

我有一个自定义的@Jira注解,用于将测试用例与Jira测试用例Key关联,示例代码如下:

@Jira("jira-T123")

我需要实现一个测试套件选择器,接收Jira Key列表作为参数,仅运行那些@Jira注解值包含在该列表中的测试用例,预期的套件代码结构如下:

@Suite
@SelectPackages("<test package>")
@SelectJiraKeys({ "jira-T123", "jira-T124"})
public class JiraKeySuite {

目前不知道该从何入手,寻求解决方案。

尝试过的方案(更新)

根据建议,我尝试通过@Tag来实现套件筛选。为了避免重复代码,我修改了现有的@Jira注解,试图让它自动添加对应的Tag:

@Tag("")
@Test
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Jira {

/**
 * Jira test case keys.
 *
 * @return
 */
@AliasFor(annotation = Tag.class, attribute = "value")
String value();
}

但JUnit不支持这种带属性覆盖的组合注解,相关问题已被官方确认。

可行方案分析

目前我认为有两种可行的解决方案:

  • 使用Aspect为测试用例动态添加@Tag("value")注解,将Jira Key作为Tag值
  • 自定义Test Engine,通过扩展DiscoverySelectorResolver来实现基于@Jira注解的测试用例筛选

内容的提问来源于stack exchange,提问作者asenec4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:22:38