使用DB单元加载DEMO数据

时间:2012-06-08 11:56:10

标签: maven dbunit

我使用Maven DBUnit插件加载单元测试的测试数据。我还想用它来将不同的数据集加载到不同的数据库以用于演示目的。 dbunit插件仅允许单次执行。我应该创建一个单独的pom,还是我可以采取一些技巧来实现这一目标。 (即,我想简单地做一些像mvn load-demo-data这样的事情。)

2 个答案:

答案 0 :(得分:1)

如果您愿意,可以execute a plugin several times取决于您在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>

您还可以定义配置文件来控制执行,这可能是您的演示数据的正确选择。使用maven无法实现mvn load-demo-data的调用,因为maven只调用目标或生命周期。

答案 1 :(得分: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