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

智能推荐

Java网络编程——NIO的阻塞IO模式、非阻塞IO模式、IO多路复用模式的使用_nio io模式-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏6次。NIO虽然称为Non-Blocking IO(非阻塞IO),但它支持阻塞IO、非阻塞IO和IO多路复用模式这几种方式的使用。_nio io模式

整数规划蒙特卡洛模拟(Matlab实现)(1)-程序员宅基地

文章浏览阅读283次,点赞3次,收藏3次。matlab生成的随机数是伪随机数,因此可生成时间相关的随机数,总之和当前时间相关。%产生一行三列的区间在【0,99】上的随机整数。%设置该命令是因为每次产生随机数的时候,随机数生成器触发器的状态都会翻转一次。if p0

Python:求最大公约数与最小公倍数(辗转相除与递归两种方法)_python求最大公约数和最小公倍数-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏50次。导读 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]欧几里得算法 _python求最大公约数和最小公倍数

AndroidStudio插件 GsonFormatPlus使用_android studio gsonformatplus怎么用-程序员宅基地

文章浏览阅读8.9k次,点赞4次,收藏24次。How to use lombok plugin in Android Studio?https://stackoverflow.com/questions/37991892/how-to-use-lombok-plugin-in-android-studio_android studio gsonformatplus怎么用

安装pyaudio的正确方法_pyaudio 安装-程序员宅基地

文章浏览阅读975次。安装pyaudio的正确方法_pyaudio 安装

开山-机器学习(1)矩阵分解-多视角数据表示的多样非负矩阵分解_多视图矩阵分解-程序员宅基地

文章浏览阅读1.7k次,点赞4次,收藏17次。欢迎来到theFlyer的博客—希望你有不一样的感悟前言:这是一篇要讲的论文,以下内容是基于个人理解写的,从简单的NMF讲到论文的多视角方法,由于之前做了PPT所以以下图片可能比较多。 论文名称 Diverse Non-Negative Matrix Factorization for Multiview Data Representation目录欢迎来到theFl..._多视图矩阵分解

随便推点

Windows下 VSCode配置cuda编译环境_code runner cuda编程 windows-程序员宅基地

文章浏览阅读1.6w次,点赞16次,收藏51次。Windows系统下,在Visual Studio 里配置CUDA环境网上已经有很多资料了,而在轻量级IDE VScode上编译CUDA的材料不是很多,本篇博文将简要介绍在Windows 系统下配置CUDA环境的方法。一、VScode插件 code-runner法在VScode里安装插件——coder-runner,在settings.json里添加(win10下的)"code-runner.executorMap": { "cu": "cd $dir; nvcc $fileN_code runner cuda编程 windows

iOS常见问题之苹果证书无法导出p12格式的文件_development 证书 无法选择 p12-程序员宅基地

文章浏览阅读1.4w次。本文介绍了苹果证书无法导出p12格式的文件的解决方法.一.打开钥匙串导出证书的默认界面,发现p12选项为灰色,无法选择.说明: 我对这种情况的证书进行测试,将直接导出.cer的证书,拷贝到其他电脑上并安装,打包项目时,提示:No valid signing identities matching the team ID "xxx" were found.在项目中,快捷键 command + ,选择_development 证书 无法选择 p12

[精品毕设]Python考务监考管理系统-程序员宅基地

文章浏览阅读19次。该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功!

UE4-(蓝图)第三十课使用动画蒙太奇_蓝图蒙太奇动画资源打点-程序员宅基地

文章浏览阅读5.6k次,点赞4次,收藏15次。一、创建蒙太奇动画1.在文件夹空白处右键创建Animation下的动画蒙太奇2.选择动画蒙太奇基于的骨骼,创建完成后命名为FppRifleFire_Montage二、编辑动画蒙太奇1.双击打开刚创建的动画蒙太奇,在编辑窗口右下角有个资源管理器,其中为所有动画,选择一个动画后拖拽到Montage栏下方空白处。(也可以放置多个片段,自己排序组合)2.设置游戏开始时 使用..._蓝图蒙太奇动画资源打点

iOS 使用AVAudio播放音乐中断处理-程序员宅基地

文章浏览阅读832次。在使用AVFoundation框架中的AVAudioPlayer播放音乐时,会出现中断的情况,比如接听电话,或者接听FaceTime,这就要通过注册通知来处理,[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(handleInterruption:) name :AVAudioSess..._avaudiosession 打开其他音频不回停止播放

SSD的基础知识介绍_ssd硬件基础知识-程序员宅基地

文章浏览阅读721次。SSD测试服务器_ssd硬件基础知识

推荐文章

热门文章

相关标签