在 Junit 中,我知道有一个 @beforeclass , @before 注释,我们是否有一个注释或设计,允许我们编写一个在整个测试过程之前只运行一次的方法?
我们有一个脚本,它为测试设置了一些数据库数据(配置、静态、查找表等......),但是在每个单独的测试之前运行它太昂贵了,我们希望它设置它,之前只设置一次开始运行任何测试。
谢谢!
在 Junit 中,我知道有一个 @beforeclass , @before 注释,我们是否有一个注释或设计,允许我们编写一个在整个测试过程之前只运行一次的方法?
我们有一个脚本,它为测试设置了一些数据库数据(配置、静态、查找表等......),但是在每个单独的测试之前运行它太昂贵了,我们希望它设置它,之前只设置一次开始运行任何测试。
谢谢!
既然您用 标记了您的问题maven
,我将采用这种方式:您可以使用该pre-integration-test
阶段来运行这个一次性昂贵的脚本(对称地,您在 中进行清理post-integration-test
)。
您可以为此使用 exec-maven-plugin:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>...</version>
<executions>
<execution>
<id>some-execution</id>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable><!-- runnable command or file name here --></executable>
</configuration>
</plugin>
JUnit 没有这种注解,因为它不对环境做任何假设:它的目标是以隔离的方式一次测试一个类。
DBUnit提供了您正在寻找的东西。它只是一个 JUnit 扩展。