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 ...
随机推荐
- pomelo使用中的常见问题
1.端口被占用, 有进程没杀干净. 用 pomelo kill --force 命令清一下进程.
- spark streaming 接收kafka消息之四 -- 运行在 worker 上的 receiver
使用分布式receiver来获取数据使用 WAL 来实现 exactly-once 操作: conf.set("spark.streaming.receiver.writeAheadLog. ...
- Spring_One
Spring_01 Spring概述 Spring是分层的Java2E应用full-stack轻量级开源框架,,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Ori ...
- iOS App开发的那些事儿2:如何搭建合适的框架
<iOS App开发的那些事儿>系列文章从更宏观的角度出发,不仅仅局限于具体某个功能.界面的实现,而是结合网易云信iOS端研发负责人多年的经验,从如何优化现有代码的角度出发,深度分析如何创 ...
- Linux系统下解锁Oracle的Scott用户
1).在Oracle用户下面输入命令:lsnrctl status查看监听是否开启,如果未开启则需要开启监听,输入命令:lsnrctl start; 2).如果没有设置监听的话需要先建立一个监听,然后 ...
- 【hadoop+spark】搭建spark过程
部分转载,已标红源地址,本博客为本菜搭建与爬坑记录,整理版请看: https://blog.csdn.net/the_fool_/article/details/78211166 记录: ====== ...
- memcached--delete--replace--set--get--incr--decr--stats
memcached命令 1.get key 来获取在内存中的值 get name 2.delete key 删除在内存中的值 delete name 3.replace key flag exp ...
- Java 添加、读取、删除PPT文档属性
文档属性是一些描述性的信息,它未包含在文件的实际内容中,但提供了有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. ...
- 微信小程序map组件z-index的层级问题
说起微信小程序的map组件,可以说是良心之作了,一个组件解决了所以接入地图的所有麻烦,但是在实际小程序的试用过程中还是存在点问题的.如下情景:刚开始接入map组件的时候是在微信开发工具的模拟器上预览的 ...
- 常用的方法论-AAR