TestNG独立运行的几种方法.md
我们在Eclipse写好了基于TestNG的代码,调试的时候通过Eclipse运行。但是在实际使用的时候有时需要运行代码的环境上没有Eclipse,这时怎么办?
通过main函数调用testng.xml文件,然后打成可执行jar包执行
1 假设我们已经写好了testng.xml,现在我们需要写一个主类和main函数用来调用testng.xml
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();
}
}
2 把项目打成可执行jar包
利用Eclipse自带的打包工具,
- 在项目名上点击右键,选择export

- 在弹出的菜单中选择
java->Runable JAR file,点击next

- 在当前页做如下操作:Launch configuration 中选择主类,Export destination 中设置导出后的路径和jar包名,在Library handling 选择第三项(可以选择任意一一项,第三项是把依赖包放到一个子文件夹中,当运行出现找不到类时,我们可以及时向该文件夹中添加依赖包)

- 在后面弹出的窗口中一路点击yes 或者 ok,完成后目标就会出现在第三步Export destination设置的位置上。
3 运行jar包
打成的jar包中有程序运行需要的.class文件,但是缺少了testng配置文件,所以需要把testng配置文件放到jar包的同级目录上,然后双击jar包(或者进入cmd命令行,输入java -jar jar包名)即可执行jar包,执行完后就会在同级目录上生成TestNG运行结果文件。
在命令行中直接运行TestNG配置文件
命令行运行TestNG的基本语法java org.testng.TestNG testng.xml。
在命令行中运行一个java程序都需要设置classpath环境变量,用来说明要执行的.class文件在哪里(简单的不需要设置,是因为那个.class文件没有跨包依赖,而我们正好可以找到他)。我们这里需要设置的classpath包括两个值,第一个值指向该程序依赖的jar包的位置,第二个值指向要运行的.class文件的位置
这需要如下操作
- 在classpath环境变量中添加TestNG依赖包的路径,添加环境变量的方法请自行百度,下图是使用Eclipse 的TestNG插件后TestNG依赖包的位置。可以看到图中有四个包,这四个都需要添加到classpath环境变量中。

- 在classpath中添加本程序生成的class文件的根目录,普通项目一般在项目名下的bin文件夹中,maven项目在target文件夹中。
- 在命令行中切换到testng.xml所在的目录
- 执行
java org.testng.TestNG testng.xml
如果不添加classpath环境变量,也可以在运行时指定classpath的值,比如
D:\workspace\tester>java -classpath "%classpath%;D:\workspace\tester\target\test-classes" org.testng.TestNG testng.xml。
上面-classpath "%classpath%;D:\workspace\tester\target\test-classes"的含义是设置当前运行环境的classpath,classpath包含两部分,一部分是%classpath%表示引用当前设置的系统环境变量中classpath的值(在系统classpath中我设置了testng依赖包的位置,如果没有设置系统环境变量classpath,这里需要写上上面四个包的全路径,中间用分号分割),第二个值是D:\workspace\tester\target\test-classes表示我的项目编译后生成的.class文件放在这里。
TestNG独立运行的几种方法.md的更多相关文章
- 让进程在后台可靠运行的几种方法 nohup,setsid,&,disown,CTRL-z ,screen
让进程在后台可靠运行的几种方法 几年前在developerWorks上面看到的文章,感觉非常实用,又简单整理了一下,转到这里,希望给看到的人带来一些帮助.文中提到的nohup和subshell方式一直 ...
- Linux 技巧:让进程在后台可靠运行的几种方法【转】
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
- webpack命令局部运行的几种方法
webpack命令局部运行的几种方法 1. 第一种,先全局安装webpack 命令:npm install -g webpack 然后再在项目内安装 命令:npm install webpack ...
- linux进程后台运行的几种方法 - nohup/setsid/&
linux进程后台运行的几种方法 - nohup/setsid/& [转载] 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务 ...
- TestNG在Eclipse中运行的几种方法
目录 1 在Eclipse Outline视图中,点右键run as TestNG Test (不推荐) 2 在Eclipse类编辑界面,直接点击右键run as TestNG Test 3 通过Te ...
- Linux 技巧:让进程在后台可靠运行的几种方法(转)
下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. nohup/setsid/& 场景: 如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢? ...
- Linux 技巧:让进程在后台可靠运行的几种方法
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
- linux进程后台运行的几种方法
转载:http://hi.baidu.com/ntuxmzvdpzbnuxq/item/79131b93f606a348f0421562 我 们经常会碰到这样的问题,用 telnet/ssh 登录了远 ...
- 转: Linux 技巧:让进程在后台可靠运行的几种方法
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
随机推荐
- 【练习题】proj1 判断二叉树子树和是否为指定的值
#include <stdio.h> #include <vector> #include <list> #include<iostream> usin ...
- Spring Boot:使用Redis存储技术
综合概述 Redis是一个开源免费的高性能key-value数据库,读取速度达110000次/s,写入速度达81000次/s.Redis支持丰富的数据类型,如Lists, Hashes, Sets 及 ...
- string类总结第一部分函数介绍
在前面几章,看了整个String类的源码,给每个方法都行写了注释,但是太过凌乱,今天我就把String类的方法整理归纳,然后再讲一下String类比较难以理解的部分 特此声明:本文篇幅较大,涵盖知识点 ...
- 简单的python多线程实例
今天抽时间又学了一下python的多线程,理解的又多了一些,为了利于理解,写了一段很简单的代码,如下: import threading from time import sleep def task ...
- 使用 cxf的程序 在win10 测试部署时报空指针异常
2018-11-08 15:50:55.072 DEBUG 21524 --- [nio-8080-exec-1] o.s.b.w.s.f.OrderedRequestContextFilter : ...
- Smobiler与Windows的异步回调差别
Smobiler与Windows的异步回调差别--基于.NET的APP开发和Windows开发差别 基于.NET的APP开发和Windows开发,异步回调差别 Windows app开发 异步回调 S ...
- 抽丝剥茧分析asyncio事件调度的核心原理
先来看一下一个简单的例子 例1: async def foo(): print('enter foo ...') await bar() print('exit foo ...') async def ...
- 使用MVVM的常见误区(1)在ViewModel中和用户交互
缺点,不能进行单元测试 比如,用户在界面点击按钮,实现用户选择一个文件,然后对文件内容进行解析.常见错误如下 using Microsoft.Win32; namespace View和ViewMod ...
- mysql双机热备实现方案
一.概念 1.热备份和备份的区别 热备份指的是:High Available(HA)即高可用,而备份指的是Backup,数据备份的一种.这是两种不同的概念,应对的产品也是两种功能上完全不同的产品.热备 ...
- ASP.NET第一次访问慢的解决方法(MVC,Web Api)
问题现象 访问asp.net web项目的时候,第一次访问比较慢,当闲置一段时间后,再次访问还是会非常慢. 问题原因 这是IIS回收造成的,再次访问的时候会初始化操作,初始化需要耗费时间,所以访问会比 ...