Jenkins+Maven+TestNg執行單元測試

語言: CN / TW / HK

Jenkins+Maven+TestNg執行單元測試

環境資訊: github

Jenkins:華為雲搭建,個人建議,jenkins的版本高一點,因為很多外掛在低版本的Jenkins上都沒辦法安裝,我原來的版本是jenkins-2.222.1-1.1.noarch.rpm,後來重灌成了jenkins-2.263.2-1.1.noarch.rpm才可以

安裝單元測試外掛

在這裡插入圖片描述

<dependency>            <groupId>org.testng</groupId>            <artifactId>testng</artifactId>            <version>6.10</version>            <scope>compile</scope>        </dependency>

下面的${xmlFileName},是後續通過Jenkins的引數化部署做準備,我們部署的時候寫哪個xml檔案,就執行哪個xml檔案

<plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-surefire-plugin</artifactId>                <version>2.22.0</version>                <configuration>                    <argLine>-Dfile.encoding=UTF-8</argLine>                    <suiteXmlFiles>                        <!--suppress UnresolvedMavenProperty -->                        <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

testng.xml

```

                                    ```

testng2.xml

```

                                    ```

在這裡插入圖片描述

提交程式碼到github

為什麼這個單獨要寫,是因為遇到了下面這個問題

Support for password authentication was removed on August 13, 2021

解決辦法傳送門: 傳送門

jenkins新增git+maven+java

系統管理->全域性工具配置 在這裡插入圖片描述 分別配置git、maven、jdk

jdk

在這裡插入圖片描述 java_home獲取方法

[[email protected] local]# cat /etc/profile

在這裡插入圖片描述

git在這裡插入圖片描述

路徑獲取方法:

[[email protected] local]# whereis git git: /usr/bin/git /usr/share/man/man1/git.1.gz

maven

在這裡插入圖片描述 同jdk獲取方式 在這裡插入圖片描述

M2_HOME和MAVEN_HOME

有的教程裡說的是獲取MAVEN_HOME,其實MAVEN_HOME是低版本的maven的配置,M2_HOME是高版本的maven的配置,現在大部分都是高版本的maven

jenkins配置github的使用者

安裝GitHub plugin外掛

首先,下載外掛GitHub plugin,為什麼要下載GitHub plugin,是因為這個外掛會把github依賴的外掛都下載下來。 在這裡插入圖片描述 由於我這個已經下載過了,所以就展示不出來了 在這裡插入圖片描述 下載安裝重啟Jenkins,檢查時候安裝成功 在這裡插入圖片描述 不知道為什麼,精確搜尋都不展示在第一位,而是展示在後面 在這裡插入圖片描述

獲取github的token

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 最後提交 在這裡插入圖片描述 在這裡插入圖片描述

配置github賬戶

在這裡插入圖片描述 在這裡插入圖片描述 API URL:https://api.github.com/ 在這裡插入圖片描述 連線測試,試試憑證是否可用 在這裡插入圖片描述

安裝maven外掛: Maven Integration plugin

安裝方法同GitHub plugin,有的教程也說安裝Maven Integration,但是我安裝的Maven Integration plugin,也沒問題,不影響使用,如果不安裝這個外掛的話,就沒辦法構建maven專案 在這裡插入圖片描述

新建maven專案

新建專案

在這裡插入圖片描述

配置github的url

在這裡插入圖片描述 這個url可以通過將github對應專案的clone地址獲取

例如

https://github.com/zhangyinrainbow/NewCRUD.git

然後將.git刪除掉 在這裡插入圖片描述

丟棄舊的構建

其實這個可以不配置,但是為了節省主機的空間,最好配置一下,我就看了一下公司的專案,也是有這個配置的 在這裡插入圖片描述

引數化構建

這裡是為了這樣一個場景,比如我們有好幾個testng.xml,那我們就可以通過這個引數來控制maven執行的是哪個xml檔案。更靈活一些。

在這裡插入圖片描述

在這裡插入圖片描述

配置git專案

Credentials就是在配置github的時候新建的憑證。 在這裡插入圖片描述 原始碼庫瀏覽器的作用是會在配置完成後會在專案上有這樣一個東西 在這裡插入圖片描述 點選後進入專案的github 在這裡插入圖片描述

構建觸發器

這個的作用就是控制什麼時候jenkins會執行,但是我們暫時手動就可以,而且公司的專案也是手動的,我這裡就也取消了。 在這裡插入圖片描述

Build

由於我們只是執行單元測試,並不需要打包上傳之類的操作,所以只需要clean test即可。 在這裡插入圖片描述

儲存,配置工作大功告成

在這裡插入圖片描述

測試一下功能是否正確

首先宣告,從咱們中國連線github太難了,以至於我構建10次有的時候才成功一次,就是因為連線超時

第一次測試執行: testng.xml 在這裡插入圖片描述 測試通過,與testng.xml配置的TestFour測試類結果一致 在這裡插入圖片描述 再來測試一下testng2.xml的TestTwo測試類結果保持一致。 在這裡插入圖片描述 結果和testng2.xml配置的 在這裡插入圖片描述

\