26

我看到 JUnit5 发布了,我申请了 IntelliJ V2016.2.1 并运行了一些测试用例。

所以看到下面的截图。

一只忙碌的猫

我只有两个问题。

  1. 为什么我在 IntelliJ 中运行 TestCase 时 JUnit Jupiter 和 JUnit Vintage 是分开的?

  2. 我可以合并 JUnit 4 和 5 TestResults 吗?

4

2 回答 2

34

JUnit 5 不仅仅是一个新的 API(称为JUnit Jupiter)。它还包含一个抽象层,用于运行 JUnit 测试的工具(称为JUnit Platform)。该平台不了解 JUnit 4 或 Jupiter 或其他任何东西。它所知道的只是测试引擎,它将执行为它们编写的测试。

(您可以在用户指南或我写的关于JUnit 5 架构的文章中阅读更多相关信息。)

  1. 为什么在 IntelliJ 中运行 TestCase 时 JUnit Jupiter 和 JUnit Vintage 是分开的?

您看到的是启动器执行两个引擎,一个用于新 API ( Jupiter ),另一个用于 JUnit 4 ( Vintage )。每个引擎都代表它在自己的数据结构中运行的测试,IntelliJ 将其显示为您看到的树。

  1. 我可以合并 JUnit 4 和 5 TestResults 吗?

这必须是一个 IDE 功能,据我所知,它没有实现。

于 2016-08-08T07:00:11.123 回答
14

如果您@RunWith(SpringRunner.class)在类的顶部使用注释,则可以将其删除,这样会很好用。这是我在注释之前的内容 - 它表明 Junit Vintage 失败了。

在此处输入图像描述

这是在我删除注释之后:

在此处输入图像描述

于 2021-01-14T07:42:16.723 回答