使用了TestNG注解的测试类有各种运行方法,下面就一一列举一下。为了让各位朋友有相同的执行体验,我说一下我使用的工具版本

程序 版本
java 1.8.0_211
Eclipse 2019-06 (4.12.0)
TestNG插件 6.14.3

1 在Eclipse Outline视图中,点右键run as TestNG Test (不推荐)

需要测试的类:Person

package ngtest;

import org.testng.annotations.Test;

public class Person {
String name;
String age;
static String MOTHER_LAND; public Person() {
} public Person(String name, String age) {
super();
this.name = name;
this.age = age;
} @Test
public void sayHello() {
System.out.println("Hello,I'm " + name + ", " + age + " years old!");
} @Test
public void introduce() {
System.out.println("Hello world!");
} @Test
public static void myMotherLand() {
System.out.println(MOTHER_LAND);
}
}

要测试上面的Introduce()方法,可以打开eclpise的outline试图,window->showView->outline,然后在outline视图中被测试的函数名上点击右键,选择run as ->TestNG Test。这种方式适用于不需要接收外部参数的方法,或静态方法。如果该方法不是静态方法,必须确保该方法不使用外部参数,并且类中有无参构造方法,否则会因为没有给参数赋值、或者构造对象时调用有参构造方法而我们没有传入参数报错。

由于运行条件限制太死,所以我们不推荐这种方式。

2 在Eclipse类编辑界面,直接点击右键run as TestNG Test

  1. 在方法名上点击右键run as ->TestNG Test ,这时就会运行该方法,如果该方法引用了外部参数,会默认付空值,比如上面的sayHello()方法,会输出Hello,I'm null, null years old!
  2. 在文件空白处点击右键run as ->TestNG Test,这时会运行该类下所有带@Test标记的方法

    注意、这种运行方式要求类中必须有无参构造方法,否则会报错

3 通过TestNG配置文件来运行(推荐)

  1. 生成配置文件,在Eclipse 的类导航或包导航试图(左侧那个目录树)中右键点击类名,选择TestNG->Convert to TestNG,点击Finish,即可生成配置文件。
  2. 运行配置文件:在Eclipse中运行配置文件有两种方法:
    • 在配置文件中,点击右键,选择run as->TestNG Test
    • 在左侧文件导航栏中,选中testng配置文件,点击右键,选择run as->TestNG Test

推荐使用这种方式,这种方式可以传参、自定义监听器、根据组筛选运行的类,是最标准的运行方式

4 通过TestNG类来执行

TestNG也是Java写的,所以毫无疑问我们可以通过main函数来调用TestNG类来执行。

在main函数中调用被TestNG注解的类

import org.testng.ITestNGListener;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import ngtest.Person; public class TestPerson {
public static void main(String[] args) {
ITestNGListener tla = new TestListenerAdapter();
TestNG testng = new TestNG();
//设置要执行的testNG类
testng.setTestClasses(new Class[] { Person.class });
testng.addListener(tla);
testng.run();
}
}

在类中调用testng配置文件

package ngtest;
import java.util.List;
import org.testng.TestNG;
import com.google.common.collect.Lists; public class TestPerson {
public static void main(String[] args) {
TestNG tng = new TestNG();
List<String> suites = Lists.newArrayList();
//添加要执行的testng.xml文件
suites.add("testng.xml");
tng.setTestSuites(suites);
tng.run();
}
}

这种执行方法的好处就是可以把代码打成可执行jar包,TestNG配置文件名设置成参数传入main函数,配置文件本身作为附件,这样jar包和配置文件就可以脱离eclipse开发环境独立运行了。

注意,因为实际要测试的类是在testng.xml文件中指定的,所以在打包的时候一定要注意把该类和他依赖的类都打到包里,否则会无法运行

TestNG在Eclipse中运行的几种方法的更多相关文章

  1. Maven构建web项目在Eclipse中部署的几种方法

    目录: 方法一:运用Maven的plugin:jetty来部署web 方法二:运用Eclipse 的Jetty插件直接部署 方法三:运用Run on Server(tomcat)部署 [方法一].运用 ...

  2. 在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法

    在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法 在Eclipse中运行Jboss时,时间太长可能有时候会出现java ...

  3. Nodejs学习笔记(二)——Eclipse中运行调试Nodejs

    前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...

  4. monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)

    monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来解释执行. Jython是Python的Java实现,它将Python代码解释成Java虚拟机上的字节码并执行,这种 ...

  5. 在eclipse中运行storm-starter

    开源软件官网提供的demo无疑是学习开源软件的最好的最原始的样例. 在Storm官网里下载apache-storm-0.9.6.zip,里面\examples\storm-starter\src\jv ...

  6. 在Eclipse中运行hadoop程序

    1.下载hadoop-eclipse-plugin-1.2.1.jar,并将之复制到eclipse/plugins下. 2.打开map-reduce视图 在eclipse中,打开window--> ...

  7. eclipse中运行出错:无法初始化主类的解决办法

    问题描述:eclipse中运行程序时,出现如下错误 解决办法: 出现此类:无法初始化主类有可能是因为eclipse中Java的版本与JDK的版本不匹配,我开始用的时候eclipse中用的是Java s ...

  8. 在Eclipse中运行Web项目Jsp网页时提示端口被占用的解决办法:Several ports (8005, 8888, 8009) required by Tomcat v9.0 Server at localhost are already in use.

    问题: 在Eclipse中运行Web项目Jsp网页启动Tomcat时提示端口被占用: Several ports (8005, 8080, 8009) required by Tomcat v9.0 ...

  9. 在Eclipse中运行JAVA代码远程操作HBase的示例

    在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...

随机推荐

  1. java基础第十三篇之Collection

    常见的几种数据结构: * 1.堆栈:先进后出 * 2.队列:先进先出 * 3.数组:查找快,增删慢 * 4.链表:查找慢,增删快  import java.util.LinkedList; /* * ...

  2. SHELL 中条件语句的运用 if for 条件测试语句

    if条件测试语句可以让脚本根据实际情况自动执行相应的命令.从技术角度来讲,if语句分为单分支结构.双分支结构.多分支结构:其复杂度随着灵活度一起逐级上升. if条件语句的单分支结构由if.then.f ...

  3. spring源码深度解析— IOC 之 bean 创建

    在 Spring 中存在着不同的 scope,默认是 singleton ,还有 prototype.request 等等其他的 scope,他们的初始化步骤是怎样的呢?这个答案在这篇博客中给出. s ...

  4. 从零开始实现放置游戏(十)——实现战斗挂机(1)hessian服务端搭建

    前面实现RMS系统时,我们让其直接访问底层数据库.后面我们在idlewow-game模块实现游戏逻辑时,将不再直接访问底层数据,而是通过hessian服务暴露接口给表现层. 本章,我们先把hessia ...

  5. ReentrantLock源码的一点总结

    ReentrantLock 是可重入锁,可重入锁的意思就是同一个线程可以重复获得该锁. 如何做到可重复获得该锁?计数器实现. 第一次加锁,cas比较是不是0,是0设置为1,并设置当前拥有锁的线程: 第 ...

  6. zookeeper的客户端应用

    什么zookeeper? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供 ...

  7. 论文阅读 <Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM>

    看了一下港科的基于vins拓展的论文<relocalization, global optimization and merging for vins>,在回环的实现部分总体没有什么变化, ...

  8. 如何在vue中使用echart

    1.安装echarts依赖   npm install echarts --save 2.在main.js中全局中引用 import echarts from 'echarts' Vue.protot ...

  9. linux下运行python3出现TypeError: a bytes-like object is required, not 'str'

    目标:用python将中文存入csv,且中文正常显示. 环境:linux,python3 百度N久,方法都不行或是比较复杂. 以上代码用python3运行后,出现TypeError: a bytes- ...

  10. [记录]HAproxy负载均衡配置教程

    HAproxy负载均衡配置教程 一.简介 haproxy是一个开源的高性能负载均衡软件:支持双机热备.虚拟主机和图形化的管理界面,自带强大的对RS健康检查功能:支持TCP(四层).HTTP(七层)应用 ...