我在Eclipse中有一个Maven项目。我的项目用于自动化测试。因此,在我的pom.xml中,我添加了所有依赖项。
例如:Testng,Cucumber,Selenium-java等。
我已经安装了Jenkins,并使用Jenkins配置了自动化项目,以便在与Jenkins执行时,将执行该项目。
我已经将所有依赖项添加到pom.xml中,因此没有任何问题。但是现在,当我在Eclipse中从外部添加jar文件时,Jenkins无法识别它,因此不会执行脚本。
这是我的测试用例:
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(); } }
我在Jenkins中的Console输出是:
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.
问题是由于我在Eclipse中为此项目添加的ATUTestRecorder jar文件所致。
问题是如何指示詹金斯找到那些JAR文件?我应该在Jenkins中配置它还是应该怎么做?
任何帮助是极大的赞赏。提前致谢。
将第三方库放到lib您项目的文件夹中,然后将其添加到Maven中<scope>system</scope>
lib
<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>