我想在整个测试开始之前和完成以这种方式删除数据库之前创建一个数据库:
- 使用测试数据集创建数据库
- 执行 Junits
- 执行集成测试
- 使用测试数据集删除数据库
我认为在预集成测试阶段使用 maven-failsafe-plugin 是可能的,但是在 junit 测试之后会触发该阶段。
关于如何实现这一目标的任何想法?谢谢!
更新:我尝试使用 exec-maven-plugin 来实现这一点。我创建了一个加载数据库的 java 类,显然可以做任何我想做的事情。我这样称呼它:
<build>
<plugins>
<!-- MOJO PLUGIN THAT LOADS THE INITIAL DATABASE -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>load-test-db</id>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.ci.ScriptRunner</mainClass>
<classpathScope>test</classpathScope>
</configuration>
</plugin>
</plugins>
</build>
然而,该课程从未被调用,好像测试阶段永远不会开始......我的方法是否有效?