提问人:st0ve 提问时间:2/6/2020 更新时间:2/6/2020 访问量:1771
获取要在 JUnit 5 中执行的测试类列表
Get list of test classes to be executed in JUnit 5
问:
我的套件中有一个测试,它要求特定类型的日志位于 Azure 的 OMS 资源中。我的方法是在测试运行的一开始就插入这些日志,在执行任何测试之前,并运行最后需要它们的特定测试夹具。我这样做是因为 OMS 的 SLA 不可靠。日志不会立即显示在 Log Analytics 中,它们需要几分钟才能传播。
我的问题是:是否可以查看 TestPlan 对象以查看要运行的类列表?如果我没有运行需要它的夹具,则不需要执行此 OMS 日志注入(例如:运行整个套件的子集、调试单个测试等)。整个测试套件都是使用该命令运行的,我经常使用 intellij 中内置的 JUnit5 运行器执行和调试单个测试mvn clean install
答:
1赞
Sormuras
2/6/2020
#1
在您自己的程序中启动 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...
有关详细信息,请参阅 https://junit.org/junit5/docs/current/user-guide/#launcher-api-discovery。
不,没有支持试运行模式的 Maven 插件。
评论
0赞
st0ve
2/7/2020
如果可能的话,我想解决这个问题。它适用于 maven,但对 IDE 使用来说会很头疼
1赞
Sormuras
2/7/2020
然后,您应该通过 IntelliJ IDEA 的 YouTrack 系统提出问题。他们可以实施这样的“试运行”......据我看来。
评论
*IT.java
mvn clean verify
*IT.java