【问题标题】:Running specific set-up for tagged tests in JUnit 5在 JUnit 5 中为标记测试运行特定设置
【发布时间】:2019-09-10 10:28:51
【问题描述】:

我正在使用 JUnit 5 和 Java 来编写集成测试。其中一些连接到数据库,我正在寻找一种方法:

  • 过滤测试
  • 在测试前运行数据库设置(截断表等)

用于带有特定注释的测试。

到目前为止,我发现使用标签可以让我做到以下几点:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.junit.jupiter.api.Tag;

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("database")
public @interface Database {}

然后对filter annotated tests out使用@Database注解。

现在我正在寻找一种解决方案,为所有使用此注释注释的测试连接测试设置。会是什么?

【问题讨论】:

    标签: java junit junit5


    【解决方案1】:

    解决方案需要两个步骤:

    • 编写一个 Jupiter 扩展,例如MyDatabaseSetup 进行必要的设置/拆卸工作
    • @ExtendWith(MyDatabaseSetup.class) 添加到您的数据库注释中

    现在每个使用 @Database 注释的类或测试方法也将使用扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      • 2019-01-30
      • 2018-06-11
      • 1970-01-01
      相关资源
      最近更新 更多