TestNG-初识 Hello World_testng是什么-程序员宅基地

技术标签: java.test  maven  单元测试  testng  

最近因为工作需要,要了解TestNG并应用到项目的单元测试和集成测试中。准备写点文章,记录一下对TestNG的使用和了解。这篇文章是这个系列的第一篇,简要介绍TestNG是什么,以及如何使用TestNG编写一个Hello World程序。

1. TestNG介绍

TestNG是一个开源的测试框架,灵感来自于JUnit。TestNG跟JUnit4很像,但它并不是JUnit的扩展,它的创建目的是超越Junit。TestNG具有更强大的功能,引入了组测试的概念。TestNG不单纯用来做单元测试,它的作用在于为程序做集成测试。

2. 动手前准备

本文假定你对java和maven有一定的了解。在开始实践之前,需要你准备好以下环境:

  • JDK环境
  • IDE(Eclipse or other)
  • 安装配置好maven

3. 实践

下面将完整地介绍,如何利用eclipse和maven来配置TestNG进行一个简单的Hello World测试。

3.1 Eclipse TestNG插件安装

eclipse工具栏目 : Help -> Install New Software 输入http://beust.com/eclipse在线安装,完成后重启eclipse即可。

3.2 创建maven项目

使用eclipse新建一个quick-start类型的maven项目即可。

pom.xml加入testng依赖:

<dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8</version>
            <scope>test</scope>
        </dependency>
</dependencies>

3.3 编写testng测试类

src/test/java里面编写测试类:

package com.crazypig.testngdemo;

import static org.testng.Assert.*;
import org.testng.annotations.Test;

public class TestNGTest {
    

    @Test
    public void test() {

        String actualString = "hello world -TestNG";
        String expectedString = "hello world -TestNG";

        assertEquals(actualString, expectedString);
        assertNotEquals(actualString.toUpperCase(), expectedString);

    }

}

3.4 编写testng.xml

src/test/resources里面新建testng.xml,内容如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
  <test name="test1" >
    <classes>
       <class name="com.crazypig.testngdemo.TestNGTest" />
    </classes>
  </test>
</suite>

3.5 Run TestNG

选中testng.xml文件,鼠标右键选择Run As -> TestNG Suite, 跑完可以在”Result of runing suite”窗口以及常规控制台窗口看到测试报告:

console窗口测试报告如下所示:

[TestNG] Running:
  E:\sts-workspace\mycat-workspace\testngdemo\src\test\resources\testng.xml


===============================================
Suite1
Total tests run: 1, Failures: 0, Skips: 0
===============================================

3.6 maven测试插件跑testng

在testng官网上面提到,maven2天生就是支持testng的:

Maven 2 supports TestNG out of the box without the need to download any additional plugins (other than TestNG itself). It is recommended that you use version 2.4 or above of the Surefire plugin (this is the case in all recent versions of Maven).

虽然maven2天生支持testng测试, 但是testng官网还是建议我们使用maven-surefire-plugin来进行testng测试,并且插件的版本要求为2.4或更高。

因此,我们在pom.xml里面加入maven-surefire-plugin的配置,并配置testng测试所用的xml文件:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>./src/test/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
</build>

配置完成以后,在项目根目录运行:

mvn test

就可以用maven来启动testng测试,而且会生成可读性较高的testng报告(html格式)

mvn test测试成功的结果如下所示:

E:\sts-workspace\mycat-workspace\testngdemo>mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building testngdemo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testngdemo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testngdemo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testngdemo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testngdemo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ testngdemo ---
[INFO] Surefire report directory: E:\sts-workspace\mycat-workspace\testngdemo\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.755 sec - in TestSuite

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.100 s
[INFO] Finished at: 2016-09-22T10:28:03+08:00
[INFO] Final Memory: 9M/150M
[INFO] ------------------------------------------------------------------------

成功完成测试后可以在${project_dir}/target/surefire-reports/目录下得到测试报告,双击index.html将会得到一份完成的测试报告:

show_testng_report

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/d6619309/article/details/52626537

智能推荐

分数化简通分:最大公约数与最小公倍数_分数最大公因数原理-程序员宅基地

文章浏览阅读2.5k次。化简1、求最大公约数原理:欧几里德算法(辗转相除法)定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数缩写为gcd。gcd(a, b) = gcd(b, a mod b)(前提条件是假设a &gt; b 且 r = a mod b, r 不为0)最好的写法如下:long long gcd(long long a, long long b){ret..._分数最大公因数原理

matlab和c 性能,性能权衡 – 什么时候是MATLAB更好/慢于C/C++-程序员宅基地

文章浏览阅读1.4k次。我一直在使用Matlab和C约10年。对于为我的研究实现的每个数值算法,我总是从使用Matlab的原型开始,然后将项目翻译成C,以获得10倍到100倍(我不是开玩笑)性能改进。当然,我比较优化的C代码和完全矢量化的Matlab代码。平均而言,改善约为50倍。在这两种编程语言背后有很多细微差别,以下是一些误解:> Matlab是一个脚本语言,但C是编译Matlab使用JIT编译器将脚本翻译为机..._matlab和c++会更省内存吗

ZXC-0168 第4讲STC8A8K64D4单片机工控板开关信号控制对应继电器输出点动方法3 使用if...if...语句实现_单片机 继电器输出-程序员宅基地

文章浏览阅读117次。/********************************************************************实现功能:应用程序使用芯片:STC8A8K64D4晶振:11.0592MHZ波特率:9600编译环境:Keil5作者:张新春 微信/手机:13603455408【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! ********************************************************************_单片机 继电器输出

C# POST XML(修正中文乱码问题)-程序员宅基地

文章浏览阅读237次。#region 发送xml文件给指定网址 /// &lt;summary&gt; /// 发送xml文件给指定网址 /// &lt;/summary&gt; /// &lt;param name="v_strURL"&gt;目标Url&lt;/param&gt; /// &lt;param name..._c#xml中文乱码

windows10、windows11、windows-server官方下载安装_windows server 2012 r2下载-程序员宅基地

文章浏览阅读1.4w次,点赞4次,收藏25次。windows10、windows11、windows-server官方下载安装_windows server 2012 r2下载

开个天窗——爆改华硕-飞行堡垒9散热_飞行堡垒9散热改造-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏2次。20210809周一 大雨加闷热偶尔分享个硬件小diy~背景:酷暑难当,小房间没空调,台式机积灰过热给烧了,换了个飞9,结果用了不到一周就蓝屏(心疼肉疼,就打个dota逛个b站而已)。哎。。。赶紧加个散热。思路:简单的搜索一下,有两种改装方式,一种是外部增强散热,例如加热底盘风扇;另一种是内部改造一下,例如多粘几条热管上去。 第一种方式比较简单,x宝x鱼买个抽风机或者底盘风扇就好了。但是考虑到我上台电脑就是灰尘太..._飞行堡垒9散热改造

随便推点

换个格式输出整数 c++_让我们用字母b来表示百,字母s表示十-程序员宅基地

文章浏览阅读1.3k次。让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234输出样例 1:BBSSS1234输入样例 2:.._让我们用字母b来表示百,字母s表示十

POJ - 1308 Is It A Tree?_the first integer identifies the node from which t-程序员宅基地

文章浏览阅读107次。A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties.There ..._the first integer identifies the node from which the edge begins, and the se

修改系统时区 /etc/localtime-程序员宅基地

文章浏览阅读1.9w次,点赞2次,收藏14次。使用 /etc/localtime 文件修改时区先查看一下当前的时区,下面这个例子中使用UTC即世界统一标准时区。假设你可能需要改为美国西部标准时间,即太平洋时间。# dateThu Aug 17 22:59:24 UTC 2016在某些发行版的 Linux 系统(比如CentOS)中,系统时区是由/etc/localtime文件控制的,所以可以通过修改/etc/l..._/etc/localtime

阿里云边缘云ENS再升级 四大场景应用加速产业数字化落地_cdn 切换 ens-程序员宅基地

文章浏览阅读922次。简介:云栖大会 | 于10月21日上午举办的边缘云应用升级与技术创新论坛中,阿里云边缘云ENS产品全面升级,从边缘云产品、技术、行业应用等维度全面阐述阿里云在边缘计算领域的技术积累、产品&解决方案沉淀、商业实践。一年一度科技圈盛事——云栖大会如期开幕,本届大会以“前沿 探索 想象力”为主题,与业界同仁、合作伙伴共同打造一场数字时代的云上相聚。阿里云将云计算的能力从中心向边缘延伸,满足不同行业客户对低延时、高带宽、本地快速处理的业务需求。于10月21日上午举办的边缘云应用升级与技术创新论坛中,阿._cdn 切换 ens

计算机网络安全之一:网络安全概述-程序员宅基地

文章浏览阅读673次。1.1 网络安全的内涵随着计算机和网络技术的迅猛发展和广泛普及,越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是,支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而,大部分企业在充分体会到了互联网的好处的时候,却较少关心网络互联带来的风险。据报道,现在全世界平均每20秒就发生一..._此级别的组成部分包括安全策略、安全过程和安全教育计划

ceph安装过程-程序员宅基地

文章浏览阅读672次。创建群集[2019-03-20 18:35:04,232][ceph_deploy.conf][DEBUG ] found configuration file at: /home/sceph/.cephdeploy.conf[2019-03-20 18:35:04,233][ceph_deploy.cli][INFO ] Invoked (2.0.1): /usr/bin/ceph-deplo..._[ceph01][warnin] ensuring that /etc/yum.repos.d/ceph.repo contains a high pr

推荐文章

热门文章

相关标签