3

我正在尝试从 Appfuse Archetype 开始构建一个应用程序,但我遇到了一些奇怪的问题。有一次,我想使用 hsqldb 进行自动化单元测试和集成测试,使用 mysql db 进行手动测试,这样我可以在需要时轻松操作数据,所以在测试期间自动切换配置文件会很好测试阶段。有没有办法做到这一点?

4

2 回答 2

7

我不确定这是否正是您所要求的,但您可以执行以下操作来为您的 Maven 项目设置多个过滤器。

<filters>
  <filter>/your/path/filter-${env}.properties</filter>
</filters>

这样,您可以使用以下方法设置多个配置文件:

<profiles>
  <profile>
    <id>local</id>
    <properties>
      <env>local</env>
    </properties>
  </profile>
  <profile>
    <id>test</id>
    <properties>
      <env>test</env>
    </properties>
  </profile>
</profiles>

然后,您可以使用相关的属性文件运行构建:

mvn -P <profile id>

这需要有位于以下位置的属性文件:

/your/path/filter-local.properties
/your/path/filter-test.properties
于 2009-05-14T22:28:40.607 回答
2

不确定这是否对您有帮助,但您可以在 /src/test/resources 文件夹中指定替代资源文件,仅在运行测试时覆盖 /src/main/resources 中的资源文件。

我在这里定义了一个替代的 placeholders.properties 文件来指定测试阶段要使用的另一个数据库连接。

于 2012-03-23T12:28:57.973 回答