Jenkins+Maven+TestNg执行单元测试(一)

发表于:2022-6-29 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:舌尖上的蛋炒饭    来源:稀土掘金

  环境信息: 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
  < xml version="1.0" encoding="UTF-8" >
  <!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
  < xml version="1.0" encoding="UTF-8" >
  <!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>
  提交代码到github
  为什么这个单独要写,是因为遇到了下面这个问题。
  jenkins添加git+maven+java
  系统管理->全局工具配置
  分别配置git、maven、jdk。
  jdk
   java_home获取方法:
  [root@hecs-82454 local]# cat /etc/profile
  git
  路径获取方法:
  [root@hecs-82454 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。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号