Java JUnit5自定义参数化测试

Java JUnit5自定义参数化测试,java,junit5,parametrized-testing,Java,Junit5,Parametrized Testing,我正在使用JUnit5参数化测试,自定义名称如下 @ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER) 其中,参数化的\u测试\u名称\u占位符在其自己的实用程序类中定义 public static final String PARAMETERIZED_TESTS_NAME_PLACEHOLDER = "#{index} [{argumentsWithNames}]"; 我面临的问题是,当我

我正在使用JUnit5参数化测试,自定义名称如下

    @ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
其中,
参数化的\u测试\u名称\u占位符
在其自己的实用程序类中定义

public static final String PARAMETERIZED_TESTS_NAME_PLACEHOLDER = "#{index} [{argumentsWithNames}]";
我面临的问题是,当我广泛使用参数化测试时,我的代码被这些
@ParameterizedTest(name=PARAMETERIZED\u tests\u name\u PLACEHOLDER)
弄得乱七八糟

所以我创建了一个自定义注释来解决这个问题

import java.lang.annotation.*;
import org.junit.jupiter.params.*;

@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Inherited
public @interface CustomParametrizedTest {

}
但是当我在测试用例中使用它时,这个注释被忽略了


任何帮助都将不胜感激。

注释
@parametrizedtest
似乎有运行时保留策略,建议在运行时需要并处理它。试试这个配置

@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface CustomParametrizedTest {

}

我觉得奇怪的是,这不是自定义批注的默认保留策略,请参阅此处的更多内容。

谢谢Sam,这是正确的,实际上我缺少保留策略