Java 获取JUnit5中要执行的测试类的列表

Java 获取JUnit5中要执行的测试类的列表,java,maven,intellij-idea,junit5,Java,Maven,Intellij Idea,Junit5,我的套件中有一个测试要求Azure的OMS资源中有特定类型的日志。我的方法是在测试运行的一开始,在执行任何测试之前插入这些日志,并在最后运行需要它们的特定测试设备。我这样做是因为OMS的SLA不可靠。日志不会立即出现在日志分析中,它们需要几分钟才能传播 我的问题是:是否可以窥视TestPlan对象以查看要运行的类的列表?如果我没有运行需要OMS日志注入的设备(例如:运行整个套件的子集、调试单个测试等),则不需要执行OMS日志注入。整个测试套件使用mvn clean install命令运行,我经常

我的套件中有一个测试要求Azure的OMS资源中有特定类型的日志。我的方法是在测试运行的一开始,在执行任何测试之前插入这些日志,并在最后运行需要它们的特定测试设备。我这样做是因为OMS的SLA不可靠。日志不会立即出现在日志分析中,它们需要几分钟才能传播


我的问题是:是否可以窥视TestPlan对象以查看要运行的类的列表?如果我没有运行需要OMS日志注入的设备(例如:运行整个套件的子集、调试单个测试等),则不需要执行OMS日志注入。整个测试套件使用
mvn clean install
命令运行,我经常使用intellij中内置的JUnit5 runner执行和调试单个测试,在您自己的程序中启动JUnit平台,以发现Jupiter将执行的所有测试类。这样,您就可以了解每个注册测试引擎的测试计划:

LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
    .selectors(
        selectPackage("com.example.mytests"),
        selectClass(MyTestClass.class)
    )
    .filters(
        includeClassNamePatterns(".*Tests")
    )
    .build();

Launcher launcher = LauncherFactory.create();

TestPlan testPlan = launcher.discover(request);

// Examine testPlan for Jupiter-based test classes...
有关详细信息,请参阅


不,没有支持干运行模式的Maven插件。

您不会简单地在2020年运行:“mvn清洁安装”!我怀疑我是否理解你的问题?你能详细解释一下吗?如果我正确地看到您的一个测试是环境特定的/不可知的,这意味着它不是单元测试。听起来真的像是一个集成测试吗?也许我错了……这是正确的。这不是单元测试。这是集成级别,因此这意味着您应该相应地命名它,这意味着
*it.java
,并通过
mvn clean verify
…通过maven failsafe插件执行它,如果您愿意,您可以忽略
*it.java
中的结果(请参阅maven failsafe插件:verify)…另一个问题是:此测试是否需要与其他单元测试不同的依赖关系?如果是的话,你应该把它转移到另一个模块,这样你就有了清晰的关注点分离……如果可能的话,我想四处看看。这对maven来说是可行的,但对于IDE用户来说是一个头疼的问题,因为您应该通过YouTrack系统为IntelliJ IDEA打开一个问题。他们可以实施这样的“试运行”。。。我想。