TomEE 8(自 8.0.7 起)仅支持使用 JUnit 5 进行测试(没有对 JUnit 4 的暂时依赖)。
传统方式
旧版EJBContainerRunner
被相关的 JUnit 5 扩展取代。
如果您使用的是 Maven,则需要将以下依赖项添加到您的pom
文件中:
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>openejb-junit5-backward</artifactId>
<version>8.0.9</version>
<scope>test</scope>
</dependency>
随后,您可以更换
@RunWith(EJBContainerRunner.class)
和
@RunWithEjbContainer
这是一个纯粹的 JUnit 5 扩展。无需将任何 JUnit 4 依赖项添加到您的类路径中。可以在 TomEE GitHub 存储库的模块测试源中找到使用示例。
现代方式
在同一个版本中,ApplicationComposer
增强了支持 JUnit 5 作为扩展。要使用它,请添加
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>openejb-junit5</artifactId>
<version>8.0.9</version>
<scope>test</scope>
</dependency>
到你的类路径。ApplicationComposer
不需要类路径扫描,并且比上面提到的替代方法更快。
只需添加@RunWithApplicationComposer
到您的 JUnit 5 测试类。默认情况下,容器生命周期与测试实例的生命周期绑定。但是,也可以使用其他模式:
PER_EACH
: 为每个测试方法启动一个容器
PER_ALL
:为每个测试类启动一个容器
PER_JVM
: 每个 JVM 启动一次容器
AUTO
(默认):基于测试实例生命周期启动容器。
可以在TomEE GitHub 存储库的示例部分找到一个示例。