国王陛下万万岁

导航

 

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:\Users\Administrator\.jenkins\workspace\Demo1
Parsing POMs
Established TCP socket on 57757
[Demo2] $ "C:\Program Files\Java\jdk1.8.0_201/bin/java" C:\Program Files\apache-maven-3.6.0 -cp "C:\Users\Administrator\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-agent-1.12.jar;C:\Program Files\apache-maven-3.6.0\boot\plexus-classworlds-2.5.2.jar;C:\Program Files\apache-maven-3.6.0/conf/logging" jenkins.maven3.agent.Maven35Main "C:\Program Files\apache-maven-3.6.0" "C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\jenkins\WEB-INF\lib\remoting-3.27.jar" C:\Users\Administrator\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-interceptor-1.12.jar C:\Users\Administrator\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-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机器运行也是可以打开浏览器的。

posted on 2019-02-23 21:19  国王陛下万万岁  阅读(861)  评论(1编辑  收藏  举报