junit 5 自定义参数化测试
junit 5 custom parametrized tests
我正在使用自定义名称如下的 Junit 5 参数化测试
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
其中 PARAMETERIZED_TESTS_NAME_PLACEHOLDER
在它自己的实用程序中定义 class
public static final String PARAMETERIZED_TESTS_NAME_PLACEHOLDER = "#{index} [{argumentsWithNames}]";
我面临的问题是,当我广泛使用参数化测试时,我的代码被这些 @ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
.
搞得一团糟
所以我创建了一个自定义注释来解决这个问题
import java.lang.annotation.*;
import org.junit.jupiter.params.*;
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Inherited
public @interface CustomParametrizedTest {
}
但是当我在测试用例中使用它时,这个注解被忽略了
任何帮助将不胜感激
@ParamterizedTest
注释似乎具有运行时保留策略,表明它在运行时需要和处理。试试这个配置
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface CustomParametrizedTest {
}
这不是自定义注释的默认保留策略,这对我来说似乎很奇怪,请从这里查看更多内容 post。
我正在使用自定义名称如下的 Junit 5 参数化测试
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
其中 PARAMETERIZED_TESTS_NAME_PLACEHOLDER
在它自己的实用程序中定义 class
public static final String PARAMETERIZED_TESTS_NAME_PLACEHOLDER = "#{index} [{argumentsWithNames}]";
我面临的问题是,当我广泛使用参数化测试时,我的代码被这些 @ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
.
所以我创建了一个自定义注释来解决这个问题
import java.lang.annotation.*;
import org.junit.jupiter.params.*;
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Inherited
public @interface CustomParametrizedTest {
}
但是当我在测试用例中使用它时,这个注解被忽略了
任何帮助将不胜感激
@ParamterizedTest
注释似乎具有运行时保留策略,表明它在运行时需要和处理。试试这个配置
@ParameterizedTest(name = PARAMETERIZED_TESTS_NAME_PLACEHOLDER)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface CustomParametrizedTest {
}
这不是自定义注释的默认保留策略,这对我来说似乎很奇怪,请从这里查看更多内容 post。