2010-09-03 89 views
4

我有,我现在用的组件插件Maven项目。 我通常会先创建我的神器: MVN清洁验证组件:装配 (我有我想单独对单元测试运行的集成测试)。Maven的组装插件导致测试运行两次

当该运行时,组件插件运行单元测试本身。 这会导致它们运行两次。

有没有一种方法,我可以告诉Assembly插件不运行测试? 我很想分两步运行此: 1. MVN清洁验证 2.如果前一个命令成功,运行mvn组装:组装-DskipTests =真

然而,这是一个有点笨拙,宁愿单命令。

感谢, 史蒂芬

回答

2

在运行此,大会插件运行单元测试本身。这会导致它们运行两次。

assembly:assembly目标调用的生命周期阶段包的执行执行本身和命令行从而将调用任何phase之前package上运行它之前。这包括test阶段。

有没有办法告诉程序集插件不要运行测试?

号我的建议是,而不是创建组件的部分的构建生命周期调用命令行即​​在插件结合它在一个特定的相组成。例如:

<project> 
... 
<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <executions> 
      <execution> 
      <id>create-my-assembly</id> 
      <phase>package</phase><!-- change this if not appropriate --> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       ... 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

如果你不希望在以后的阶段(例如post-integration-testverify)如果您的集成测试失败要创建的组件,然后将其绑定。

如果你不希望大会能够系统地创建做,把上面的配置在配置文件中。

+0

嗨,我已经有程序集自动运行包(阶段设置为包)。 然而,它只是和运行单元测试本身,甚至只是在运行时:MVN清洁套装 所以通过测试阶段,通常的变速运行的第一套单元测试,然后组装的绑定到封装阶段运行单位再次测试。 – Steven 2010-09-03 06:27:09

+0

@Steven如果你绑定了正确的目标,即“单一”,那不是。我怀疑你只是在命令行上绑定了'assembly'。 – 2010-09-03 06:40:20

+0

我正在使用附加的目标。这是为了在发布期间将其上传到我的存储库。我在使用附加的目标之前尝试使用构建辅助插件来附加构件,但它抱怨具有相同ID的构件(或者类似的奇怪东西)。 稍后我会再有单一目标。谢谢 – Steven 2010-09-04 08:34:28