0

DbExtension我所有的数据库测试都使用自定义扩展进行了注释。我还想标记这些测试,以便我可以在 CI 中单独运行它们。有什么我可以在扩展类上添加的,以便标记所有扩展测试吗?

只是为了说明(在 kotlin 中):

    class DatabaseExtension : ParameterResolver, AfterEachCallback {
       //setup connection
    }

    @ExtendWith(DatabaseExtension::class)
    @Tag("db) //Can we have this tag in the extension class instead of each test
    class MyDbTest {

    } 
4

1 回答 1

4

不在/通过扩展名,但这将是一个简洁的功能。您介意在https://github.com/junit-team/junit5/issues/new/choose打开功能请求吗?

不过,您可以创建自己的组合注释。类似于以下内容:

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;
import org.junit.jupiter.api.extension.ExtendWith;

@ExtendWith(DatabaseExtension.class)
@Tag("db")
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Databased {}

用法:

@Databased
class MyDbTest {} 

有关更多详细信息,请参阅https://junit.org/junit5/docs/current/user-guide/#writing-tests-meta-annotations

于 2019-04-15T09:21:15.680 回答