环境信息: github
Jenkins:华为云搭建,个人建议,jenkins的版本高一点,因为很多插件在低版本的Jenkins上都没办法安装,我原来的版本是jenkins-2.222.1-1.1.noarch.rpm,后来重装成了jenkins-2.263.2-1.1.noarch.rpm才可以
<dependency>
<groupId>org.testnggroupId>
<artifactId>testngartifactId>
<version>6.10version>
<scope>compilescope>
dependency>
下面的${xmlFileName},是后续通过Jenkins的参数化部署做准备,我们部署的时候写哪个xml文件,就执行哪个xml文件
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-surefire-pluginartifactId>
<version>2.22.0version>
<configuration>
<argLine>-Dfile.encoding=UTF-8argLine>
<suiteXmlFiles>
<suiteXmlFile>${xmlFileName}suiteXmlFile>
suiteXmlFiles>
configuration>
plugin>
准备两个测试用例,分别写在两个不同的testng.xml文件里
package com.newcrud.testngTest;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestFour {
@Test
public void testA() {
System.out.println("testA");
Assert.assertEquals(1,1);
}
@Test
public void testB(){
System.out.println("testB");
Assert.assertEquals(1,1);
}
}
package com.newcrud.testngTest;
import org.testng.annotations.*;
public class TestTwo {
@Test
public void testOne(){
System.out.println("TestTwo的testOne");
}
}
testng.xml
DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite">
<test verbose="2" preserve-order="true" name="/Users/zc/IdeaProjects/NewCRUD/src/test/java/com/newcrud" time-out="3000">
<classes>
<class name="com.newcrud.testngTest.TestFour">class>
classes>
test>
suite>
testng2.xml
DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite">
<test verbose="2" preserve-order="true" name="/Users/zc/IdeaProjects/NewCRUD/src/test/java/com/newcrud" time-out="3000">
<classes>
<class name="com.newcrud.testngTest.TestTwo">class>
classes>
test>
suite>
为什么这个单独要写,是因为遇到了下面这个问题
解决办法传送门: 传送门
系统管理->全局工具配置
分别配置git、maven、jdk
[root@hecs-82454 local]# cat /etc/profile
路径获取方法:
[root@hecs-82454 local]# whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
有的教程里说的是获取MAVEN_HOME,其实MAVEN_HOME是低版本的maven的配置,M2_HOME是高版本的maven的配置,现在大部分都是高版本的maven
首先,下载插件GitHub plugin,为什么要下载GitHub plugin,是因为这个插件会把github依赖的插件都下载下来。
由于我这个已经下载过了,所以就展示不出来了
下载安装重启Jenkins,检查时候安装成功
不知道为什么,精确搜索都不展示在第一位,而是展示在后面
API URL:https://api.github.com/
连接测试,试试凭证是否可用
安装方法同GitHub plugin,有的教程也说安装Maven Integration,但是我安装的Maven Integration plugin,也没问题,不影响使用,如果不安装这个插件的话,就没办法构建maven项目
这个url可以通过将github对应项目的clone地址获取
例如
https://github.com/zhangyinrainbow/NewCRUD.git
其实这个可以不配置,但是为了节省主机的空间,最好配置一下,我就看了一下公司的项目,也是有这个配置的
这里是为了这样一个场景,比如我们有好几个testng.xml,那我们就可以通过这个参数来控制maven执行的是哪个xml文件。更灵活一些。
Credentials就是在配置github的时候新建的凭证。
源码库浏览器的作用是会在配置完成后会在项目上有这样一个东西
点击后进入项目的github
这个的作用就是控制什么时候jenkins会执行,但是我们暂时手动就可以,而且公司的项目也是手动的,我这里就也取消了。
由于我们只是执行单元测试,并不需要打包上传之类的操作,所以只需要clean test即可。
首先声明,从咱们中国连接github太难了,以至于我构建10次有的时候才成功一次,就是因为连接超时
第一次测试执行: testng.xml
测试通过,与testng.xml配置的TestFour测试类结果一致
再来测试一下testng2.xml的TestTwo测试类结果保持一致。
结果和testng2.xml配置的