TestNG在Eclipse中运行的几种方法
使用了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
- 在方法名上点击右键
run as ->TestNG Test
,这时就会运行该方法,如果该方法引用了外部参数,会默认付空值,比如上面的sayHello()方法,会输出Hello,I'm null, null years old!
- 在文件空白处点击右键
run as ->TestNG Test
,这时会运行该类下所有带@Test标记的方法
注意、这种运行方式要求类中必须有无参构造方法,否则会报错。
3 通过TestNG配置文件来运行(推荐)
- 生成配置文件,在Eclipse 的类导航或包导航试图(左侧那个目录树)中右键点击类名,选择
TestNG->Convert to TestNG
,点击Finish,即可生成配置文件。 - 运行配置文件:在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中运行的几种方法的更多相关文章
- Maven构建web项目在Eclipse中部署的几种方法
目录: 方法一:运用Maven的plugin:jetty来部署web 方法二:运用Eclipse 的Jetty插件直接部署 方法三:运用Run on Server(tomcat)部署 [方法一].运用 ...
- 在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法
在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法 在Eclipse中运行Jboss时,时间太长可能有时候会出现java ...
- Nodejs学习笔记(二)——Eclipse中运行调试Nodejs
前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...
- monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)
monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来解释执行. Jython是Python的Java实现,它将Python代码解释成Java虚拟机上的字节码并执行,这种 ...
- 在eclipse中运行storm-starter
开源软件官网提供的demo无疑是学习开源软件的最好的最原始的样例. 在Storm官网里下载apache-storm-0.9.6.zip,里面\examples\storm-starter\src\jv ...
- 在Eclipse中运行hadoop程序
1.下载hadoop-eclipse-plugin-1.2.1.jar,并将之复制到eclipse/plugins下. 2.打开map-reduce视图 在eclipse中,打开window--> ...
- eclipse中运行出错:无法初始化主类的解决办法
问题描述:eclipse中运行程序时,出现如下错误 解决办法: 出现此类:无法初始化主类有可能是因为eclipse中Java的版本与JDK的版本不匹配,我开始用的时候eclipse中用的是Java s ...
- 在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 ...
- 在Eclipse中运行JAVA代码远程操作HBase的示例
在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...
随机推荐
- 解决Mac下sed命令报错的问题
在Mac上准备批量替换一些文字,使用sed命令,如下: sed -i 's/xxx/yyy/g' file 同样的命令在Linux上是可以成功运行的,注意Mac下man sed中-i参数的说明: 原来 ...
- ECMAScript6 语法
声明变量 var let const var(声明局部变量,有局部外可用缺陷) 代码 <!DOCTYPE html> <html lang="en"> &l ...
- Nginx+Keepalived部署流程
环境介绍 1)LB01 Hostname:lb01.example.com VIP:192.168.3.33(eth0:0) IP:192.168.3.31(eth0) OS:Centos 7 2)L ...
- Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装
Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装 一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...
- java多线程死锁
进程(线程)同步的基本概念 进程之间的制约关系 1. 直接制约关系(进程同步) 这个关系主要源于进程合作,例如,有一个输入进程A通过单缓冲向进程B提供数据,当该缓冲空时,进程B因为不能获得所需数据而被 ...
- jenkin+Git子模块自动拉取代码
jenkins+Git子模块自动拉取代码 添加Git子模块 先克隆想要添加子模块的仓库git clone ssh://git@ip:port/user/project.git,这个是主目录. 进入仓库 ...
- decimal.ToString()问题
decimal dt = 1.00M; decimal dt1 = 1M; bool d = dt == dt1; ...
- mysql双机热备实现方案
一.概念 1.热备份和备份的区别 热备份指的是:High Available(HA)即高可用,而备份指的是Backup,数据备份的一种.这是两种不同的概念,应对的产品也是两种功能上完全不同的产品.热备 ...
- Codeforces 758B:Blown Garland(模拟)
http://codeforces.com/problemset/problem/758/B 题意:给出一个字符串,每4个位置对应一个颜色,如果为‘!’的话,代表该灯泡是坏的,问最后每个颜色坏的灯泡的 ...
- sqlserver、oracle数据库排序空值null问题解决办法
转:https://www.cnblogs.com/pacer/archive/2010/03/02/1676371.html [sqlserver]: sqlserver 认为 null 最小. 升 ...