1)Maven TestNG什么的都配置好了,在本地用eclipse->Run AS->MAVEN INSTALL运行正常
2) Jenkins安装了插件,也建立了MAVEN项目。MAVEN项目里面也设置好了maven的pom.xml文件的路径。
3) Jenkins->Global Tool Configuration里面JAVA_HOME和MAVEN_HOME都配置正确。
4)创建构建,build所建立的maven项目,出现Could not find or load main class这个错误
Started by user Admin Building in workspace C:UsersAdministrator.jenkinsworkspaceDemo1 Parsing POMs Established TCP socket on 57757 [Demo2] $ "C:Program FilesJavajdk1.8.0_201/bin/java" C:Program Filesapache-maven-3.6.0 -cp "C:UsersAdministrator.jenkinspluginsmaven-pluginWEB-INFlibmaven35-agent-1.12.jar;C:Program Filesapache-maven-3.6.0ootplexus-classworlds-2.5.2.jar;C:Program Filesapache-maven-3.6.0/conf/logging" jenkins.maven3.agent.Maven35Main "C:Program Filesapache-maven-3.6.0" "C:Program FilesApache Software FoundationTomcat 9.0webappsjenkinsWEB-INFlib emoting-3.27.jar" C:UsersAdministrator.jenkinspluginsmaven-pluginWEB-INFlibmaven35-interceptor-1.12.jar C:UsersAdministrator.jenkinspluginsmaven-pluginWEB-INFlibmaven3-interceptor-commons-1.12.jar 57757 Error: Could not find or load main class C:Program ERROR: Failed to launch Maven. Exit code = 1 Finished: FAILURE
Google了很久都没解决问题,突然意识到别人创建maven项目时,jenkins的Congiure system 跟我的不一样,见下图.
好吧,“Error: Could not find or load main class C:Program” 这个问题解决,再次build maven项目,又出错了。
错误是,buid成功但是没有执行任何TestNG用例。
这是因为在maven的pom.xml里面没有吧testng.xml加进去。
好吧,加一下。加了之后的样子。
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>Demo2</groupId> <artifactId>Demo2</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M3</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> <useSystemClassLoader>false</useSystemClassLoader> </configuration> </plugin> </plugins> </build> </project>
再次,build,可以正常运行了。
但是发生了一个无解的问题。
脚本正常运行,结果也正确,但在电脑上看不到浏览器。
我的脚本/jenkins/tomcat都是在本机。
在本机上安装了Tomcat,并且用的tomcat Windows installer安装的,安装完成后tomcat就是一个windows service.
然后,吧jenkins的war包丢尽tomcat的webapp目录。
网上说了多种办法,但是都无法解决,因为网上的情况是:他们的jenkins不是安装在tomcat里面的。
这个问题stackflow 有老外几年前提出过,无法解答。
不过,虽然在本机看不到浏览器,但是用Jenkins去出发selenium grid还是可以的。
或者,用jenkins 的主从模式,让selenium脚本在slave机器运行也是可以打开浏览器的。