2013-07-22 3 views
6

Написав несколько тестов на Java с использованием Eclipse IDE, мы хотим, чтобы они запускались автоматически после развертывания. Я дошел до того, что просто сконфигурировал Maven для работы с Дженкинсом, но есть еще проблемы. Вот один из них: Im пытается запустить обезглавленный текст (Xvfb, светлячок) ион Дженкинс, но вот выход: (я не могу даже определить, что проблема здесь)Запуск теста Maven Webdriver Testng на Jenkins, неидентифицируемая ошибка

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

и это мой pom.xml файл:

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

ответ

1

Глядя на след исключения, вам не хватает некоторых классов, как вы получаете ClassNotFoundException и, следовательно, InvocationTargetException. Есть несколько вещей, которые вы можете попробовать, если вы еще этого не сделали.

  1. Улучшайте Maven
  2. Настройка Дженкинс использовать правильный Maven установить

Вы можете, вероятно, найти ответ here. Надеюсь, что поможет

+0

Спасибо! Переключился с 3.1 до 3.0.5, и тест был успешно выполнен. –

0

Похоже, эта ошибка покрыта этой ошибкой: JENKINS-15935. Он был исправлен в версии 1.526 Jenkins, и в соответствии с изменением не похоже, что исправление дошло до релизов LTS (начиная с версии 1.509.3).

Когда я столкнулся с этой ошибкой, я просто вернулся к Maven 3.0.5, который исправил эту проблему для меня. Я дам Maven 3.1 еще один выстрел, как только успею обновить наши установки Jenkins.

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