如何从运行测试
问题描述:
EDIT停止Maven的antrun-插件:解决 我曾在我的POM两次配置吧..如何从运行测试
我设立在行家生产瞩目。为了复制正确的production.properties文件并删除标准文件,我使用了maven-antrun-plugin。
但我不想运行任何测试。由于某种原因,这个插件会尝试运行一些不起作用的canoo-web-tests(并且因为它们从未被使用而不应该工作)。
关于如何让antrun插件只能复制文件的任何想法?
这里是antrun代码:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.outputDirectory}/properties/externalResources.properties"/>
<delete file="${project.build.outputDirectory}/properties/externalResources.prod.properties"/>
<copy file="src/main/resources/properties/externalResources.prod.properties"
tofile="${project.build.outputDirectory}/properties/externalResources.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
,这里是错误显示它试图做一些测试:是一个堆栈跟踪显示,它试图读取Web的
[INFO] Executing tasks
[delete] Deleting: C:\xxx\target\classes\properties\externalResources.properties
[delete] Deleting: C:\xxx\target\classes\properties\externalResources.prod.properties
[copy] Copying 1 file to C:\xxx\target\classes\properties
Trying to override old definition of task retry
[echo] Testing 'XXX-1.2.0' with
[echo] locale 'no'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
然后tests.xml,并且由于该文件有错误,构建失败。
答
听起来您需要根据不同的配置创建不同的工件,并且可以通过使用适当的Maven配置来实现单个模块。你可能会喜欢这样的情况:
.
|-- pom.xml
`-- src
|-- main
| |-- java
| |-- resources
| |-- environment
| | |-- test
| | | `-- database.properties
| | |-- qa
| | | `-- database.properties
| | `-- production
| | `-- database.properties
| `-- webapp
这是一个网络应用的例子,但将努力像罐子,耳朵等任何神器另外你需要在你的POM中不同领域的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>test</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/test.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>qa</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/qa.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>production</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/production.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
而每一次的描述符包含相应的文件夹:
<id>test</id>
<formats>
<format>war</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>true</unpack>
<useProjectArtifact>true</useProjectArtifact>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<outputDirectory>WEB-INF</outputDirectory>
<directory>${basedir}/src/main/environment/test/</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
这将导致行家MVN清洁套装的一个简单的运行,就会产生不同的工件(CLA与为每个环境。详细的解释可以在here找到。
也许跳过测试将有助于:http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html – 2012-04-20 12:21:02
我想通了。我已经配置它在早些时候测试..愚蠢的我.. – user829237 2012-04-20 12:30:45