2013-07-22 8 views
6

Nachdem wir einige Tests in Java mit Eclipse IDE geschrieben haben, möchten wir, dass sie nach der Bereitstellung automatisch ausgeführt werden. Ich kam zu dem Punkt, Maven so konfiguriert zu haben, dass er fast mit Jenkins zusammenarbeitet, aber es gibt noch weitere Probleme. Hier ist einer von ihnen: Im Versuch, einen Made Text (xvfb, firefox) ion jenkins zu laufen, aber hier ist die Ausgabe: (ich kann sogar erkennen, was das Problem hier ist)Ausführen eines Maven Webdriver Testng-Tests mit Jenkins, nicht identifizierbarer Fehler

<===[JENKINS REMOTING CAPACITY]===>channel started 

log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter). 
log4j:WARN Please initialize the log4j system properly. 

Executing Maven: -B -f /mnt/www/jenkins/jobs/Integration Tests 2/workspace/pom.xml install 

java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:331) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) 
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:174) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:100) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:66) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenLoggerManager 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    ... 19 more 
channel stopped 
ERROR: Failed to parse POMs 
hudson.util.IOException2: java.lang.reflect.InvocationTargetException 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:162) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:66) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.Exception: java.lang.reflect.InvocationTargetException 
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:177) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:100) 
    ... 10 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:331) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) 
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:174) 
    ... 11 more 
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenLoggerManager 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    ... 19 more 
Finished: FAILURE 

und das ist meine pom.xml-Datei:

<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> 

    <groupId>com.pragmaticqa.tests</groupId> 
    <artifactId>functionalTests</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>functionalTests</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-firefox-driver</artifactId> 
     <version>2.32.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>6.8</version> 
      <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.opencsv</groupId> 
     <artifactId>opencsv</artifactId> 
     <version>2.0</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>selenium-maven-plugin</artifactId> 
     <version>2.3</version> 
     <executions> 
      <execution> 
       <id>xvfb</id> 
       <phase>pre-integration-test</phase> 
       <goals> 
        <goal>xvfb</goal> 
       </goals> 
      </execution> 
      <execution> 
       <id>selenium</id> 
       <phase>pre-integration-test</phase> 
       <goals> 
        <goal>start-server</goal> 
       </goals> 
       <configuration> 
        <background>true</background> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
    </plugins> 
    </build> 
</project> 

Antwort

1

auf Ausnahme Spur Sehen, fehlen einige Klassen, wie Sie ClassNotFoundException und damit InvocationTargetException bekommen. Es gibt ein paar Dinge, die Sie ausprobieren können, wenn Sie es nicht schon getan haben.

  1. Rüsten Sie Ihren Maven
  2. konfigurieren Jenkins den richtigen Maven verwenden
  3. installieren

Sie können sich wahrscheinlich here finden beantworten. Hoffe das hilft

+0

Vielen Dank! Von 3.1 zu 3.0.5 gewechselt und der Test wurde erfolgreich ausgeführt. –

0

Es sieht aus wie dieser Fehler durch diesen Fehler abgedeckt ist: JENKINS-15935. Es wurde in Jenkins Version 1.526 korrigiert und laut dem Changelog scheint es nicht so, als hätte der Fix es bereits zu den LTS Releases geschafft (ab Version 1.509.3).

Als ich auf diesen Fehler stieß, wechselte ich einfach wieder zu Maven 3.0.5, was das Problem für mich korrigierte. Ich gebe Maven 3.1 eine weitere Chance, sobald ich Zeit habe, unsere Jenkins-Installationen zu aktualisieren.