2016-10-17 2 views
1

Ich habe ein Maven-Projekt in Eclipse. Mein Projekt ist für Automatisierungstests. Also in meiner pom.xml habe ich alle Abhängigkeiten hinzugefügt.Jenkins kann die externen Jars nicht finden, die für das Selenprojekt durch Eclipse hinzugefügt wurden

Zum Beispiel: testng, Gurke, Selen-java etc ..

I Jenkins installiert und konfiguriert habe mein Automatisierungsprojekt mit Jenkins, so dass, wenn dieses Projekt ausgeführt werden, mit Jenkins ausgeführt.

Ich habe alle Abhängigkeiten zu meiner pom.xml hinzugefügt, so dass keine Probleme da waren. Aber jetzt, als ich die JAR-Dateien extern in Eclipse hinzugefügt habe, wird es von Jenkins nicht erkannt und daher wird das Skript nicht ausgeführt.

Hier ist mein Testfall:

package com.giveback360.tests.sampletest; 

import org.openqa.selenium.WebDriver; 
import com.giveback360.utils.OpenBrowserHelp; 
import cucumber.api.java.en.When; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import atu.testrecorder.ATUTestRecorder; 
import atu.testrecorder.exceptions.ATUTestRecorderException; 

public class SampleTest { 

/** 
* Initialize the webdriver. 
*/ 
private WebDriver driver = new FirefoxDriver(); 

/** 
* Initialize recorder. 
*/ 
ATUTestRecorder recorder; 

/** 
* Open browser. 
* @throws InterruptedException the InterruptedException. 
*/ 
@When("Open browser maximize") 
    public void browserOpen() throws InterruptedException, ATUTestRecorderException { 

recorder = new ATUTestRecorder("/home/username/workspace/project/scriptVideos","TestVideo",false); 
recorder.start(); 

driver.get("http://www.google.com"); 
Thread.sleep(4000); 
driver.quit(); 

recorder.stop(); 

} 

} 

Meiner Konsole Ausgabe in Jenkins ist:

java.lang.NoClassDefFoundError: atu/testrecorder/exceptions/ATUTestRecorderException 
Caused by: java.lang.ClassNotFoundException: atu.testrecorder.exceptions.ATUTestRecorderException 


Results : 

Failed tests: 
SampleTest>AbstractTestNGCucumberTests.setUpClass:16 » NoClassDefFound atu/tes... 

Tests run: 3, Failures: 1, Errors: 0, Skipped: 2 

[ERROR] There are test failures. 

Das Problem ist, weil die ATUTestRecorder JAR-Dateien Ich habe für dieses Projekt in Eclipse hinzugefügt.

Problem ist, wie man Jenkins anweist, diese JAR-Dateien zu finden? Sollte ich es in Jenkins konfigurieren oder Wie soll ich das machen?

Jede Hilfe wird sehr geschätzt. Danke im Voraus.

Antwort

1

Put 3rd-Party-Bibliotheken in lib Ordner Ihrer project.Then fügen sie maven mit <scope>system</scope>

<dependencies> 
    <dependency> 
    <groupId>com.example</groupId> 
    <artifactId>mylib</artifactId> 
    <version>1.0</version> 
    <scope>system</scope> 
    <systemPath>${basedir}/lib/mylib.jar</systemPath> 
    </dependency> 
</dependencies> 
+0

Ich danke dir sehr. Es funktionierte. –

3

Sie haben ein Glas nur mit dem Eclipse-Build-Pfad, so dass es nur zugänglich für Eclipse

einrichten

Während Jenkins nur ein Maven-Projekt erstellt, versucht Jenkins, die erforderliche Abhängigkeit von POM.xml zu finden. Es ist nicht in der Lage, das Jar zu finden, das vom Eclipse-Build-Pfad stammt.

Sie müssen Maven Erklärung dieses speziellen Glas finden und haben in pom.xml

setzen oder Sie können 3rd-Party-Glas in Maven hinzufügen mit dem folgenden Befehl

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 

Find more information about adding 3rd party jar from here

Verwandte Themen