我正在使用 Maven DBUnit 插件来加载单元测试的测试数据。我还想用它来将不同的数据集加载到不同的数据库以进行演示。dbunit 插件只允许单次执行。我应该只创建一个单独的 pom 还是有一些技巧可以做到这一点。(即,我想简单地做一些类似 mvn load-demo-data 的事情)。
问问题
470 次
2 回答
1
如果您愿意,您可以多次执行插件,这取决于您在 pom 中提供的配置:
<plugin>
<artifactId>maven-whatever-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>execution1</id>
<phase>test</phase>
<configuration>
....
</configuration>
<goals>
<goal>WhatEverGoalYouHave</goal>
</goals>
<phase>...</phase>
</execution>
<execution>
<id>execution2</id>
<configuration>
....
</configuration>
<goals>
<goal>WhatEverGoalYouHave</goal>
</goals>
<phase>...</phase>
</execution>
</executions>
</plugin>
您还可以定义一个配置文件来控制执行,这可能是您的演示数据的正确选择。您描述的调用 mvn load-demo-data 在 maven 中是不可能的,因为 maven 只调用一个目标或生命周期。
于 2012-06-08T16:58:39.480 回答
1
配置数据库凭据时使用属性
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>dbunit-maven-plugin</artifactId>
<version>${dbunit.plugin.version}</version>
<configuration>
<url>${db.url}</url>
<driver>${db.driver}</driver>
<username>${db.username}</username>
<password>${db.password}</password>
</configuration>
..
然后将配置文件部分添加到您的 POM,控制这些属性的设置:
<profiles>
<profile>
<id>db1</id>
<properties>
<db.url>jdbc:h2:target/db1;AUTO_SERVER=TRUE</db.url>
<db.driver>org.h2.Driver</db.driver>
<db.username>user</db.username>
<db.password>pass</db.password>
</properties>
<profile>
<profile>
<id>db2</id>
<properties>
<db.url>jdbc:h2:target/db2;AUTO_SERVER=TRUE</db.url>
<db.driver>org.h2.Driver</db.driver>
<db.username>user</db.username>
<db.password>pass</db.password>
</properties>
<profile>
..
配置文件可以按如下方式激活以更新两个不同的数据库
mvn -Pdb1 clean test
mvn -Pdb2 clean test
于 2012-06-09T02:40:13.707 回答