2016-02-11 2 views
0

У меня есть сборка, которая включает в себя cobertura как часть моего пробега Jenkins. Однако теперь я понимаю, что он выполняет все мои тесты дважды.Cobertura on Jenkins Повторяющиеся тестовые прогоны

У меня есть проект как проект Maven в Дженкинсе. и у меня была цель для запуска: clean coberture:cobertura install

Я думал, что часть команды install просто запустит оставшиеся части цели установки, такие как пакет. Однако он повторяет компиляцию и все тесты. Это несмотря на то, что там уже есть тесты.

Я пробовал настраивать различные комбинации шагов предварительной сборки и пост-сборки, но я постоянно сталкиваюсь с проблемами. В некоторых комбинациях артефакты сборки, такие как банки, никогда не публикуются в Jenkins. В других случаях результаты теста отсутствуют.

Я подумал, что, возможно, мне нужно переделать сборку только как сборку оболочки. Я думаю, что тогда я мог бы выполнить команду: mvn clean cobertura:cobertura && mvn install -Dmaven.test.skip=true

Я думаю, что это сделало бы то, что я хочу. По крайней мере, он прекратил бы выполнять все тесты дважды.

Это лучший подход или есть другой способ?

Это, как я в том числе Cobertura в моей POM:

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>com.foo.bar</groupId> 
    <artifactId>my-parent</artifactId> 
    <version>1.2.1</version> 
    </parent> 

    <groupId>com.foo.bar.baz</groupId> 
    <artifactId>osom</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <description>TODO</description> 


    <modules> 
    <module>module1</module> 
    <module>module2</module> 
    <module>module3</module> 
    </modules> 

    <dependencies> 
    </dependencies> 

    <build> 

    <!-- To define the plugin version in your parent POM --> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>findbugs-maven-plugin</artifactId> 
      <version>3.0.3</version> 
     </plugin> 
     </plugins> 
    </pluginManagement> 


    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.6</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>test-jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.18</version> 
     <configuration> 
      <useUnlimitedThreads>true</useUnlimitedThreads> 
      <parallel>suites</parallel> 
      <reuseForks>false</reuseForks> 
      <includes> 
      <include>**/*Test.java</include> 
      <include>**/Test*.java</include> 
      </includes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

    <!-- use mvn cobertura:cobertura to generate cobertura reports --> 
    <reporting> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.7</version> 
     <configuration> 
      <aggregate>true</aggregate> 
      <format>xml</format> 
     </configuration> 
     </plugin> 
    </plugins> 
    </reporting> 
</project> 

ответ

0

Лучший подход, который я мог придумать, чтобы использовать проект «Фристайл» в Дженкинс.

Я запустил проект с двумя отдельными командами maven. mvn clean cobertura: cobertura и mvn install -Dmaven.test.skip = true

Это предотвращает запуск двух тестов.

1

Если вы не хотите дважды запускать тесты, используйте плагин maven вместо плагина cobertura-maven, используйте плагин maven qualinsight-mojo-cobertura.

+0

Спасибо, я проверю это в будущем. – Jon

Смежные вопросы