当我在IntelliJ中运行TestCase时,为什么JUnit Jupiter和JUnit Vintage分离?

时间:2016-08-08 06:02:14

标签: intellij-idea junit junit5

我看到JUnit5已经发布了,我在IntelliJ V2016.2.1中应用并运行了一些测试用例。

所以见下面的截图。

a busy cat

我只有两个问题。

  1. 当我在IntelliJ中运行TestCase时,为什么JUnit Jupiter和JUnit Vintage分离?

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

2 个答案:

答案 0 :(得分:15)

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

(您可以在user guide或我撰写的关于JUnit 5's architecture的帖子中详细了解这一点。)

  
      
  1. 当我在IntelliJ中运行TestCase时,为什么JUnit Jupiter和JUnit Vintage分离?
  2.   

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

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

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

答案 1 :(得分:4)

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

enter image description here

这是我去掉注释之后的:

enter image description here