我们在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自带的打包工具,

  1. 在项目名上点击右键,选择export

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

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

  4. 在后面弹出的窗口中一路点击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文件的位置

这需要如下操作

  1. 在classpath环境变量中添加TestNG依赖包的路径,添加环境变量的方法请自行百度,下图是使用Eclipse 的TestNG插件后TestNG依赖包的位置。可以看到图中有四个包,这四个都需要添加到classpath环境变量中。

  2. 在classpath中添加本程序生成的class文件的根目录,普通项目一般在项目名下的bin文件夹中,maven项目在target文件夹中。
  3. 在命令行中切换到testng.xml所在的目录
  4. 执行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的更多相关文章

  1. 让进程在后台可靠运行的几种方法 nohup,setsid,&,disown,CTRL-z ,screen

    让进程在后台可靠运行的几种方法 几年前在developerWorks上面看到的文章,感觉非常实用,又简单整理了一下,转到这里,希望给看到的人带来一些帮助.文中提到的nohup和subshell方式一直 ...

  2. Linux 技巧:让进程在后台可靠运行的几种方法【转】

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

  3. webpack命令局部运行的几种方法

    webpack命令局部运行的几种方法   1. 第一种,先全局安装webpack 命令:npm install -g webpack 然后再在项目内安装 命令:npm install webpack ...

  4. linux进程后台运行的几种方法 - nohup/setsid/&

    linux进程后台运行的几种方法 - nohup/setsid/& [转载]   我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务 ...

  5. TestNG在Eclipse中运行的几种方法

    目录 1 在Eclipse Outline视图中,点右键run as TestNG Test (不推荐) 2 在Eclipse类编辑界面,直接点击右键run as TestNG Test 3 通过Te ...

  6. Linux 技巧:让进程在后台可靠运行的几种方法(转)

    下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. nohup/setsid/& 场景: 如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢? ...

  7. Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

  8. linux进程后台运行的几种方法

    转载:http://hi.baidu.com/ntuxmzvdpzbnuxq/item/79131b93f606a348f0421562 我 们经常会碰到这样的问题,用 telnet/ssh 登录了远 ...

  9. 转: Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

随机推荐

  1. gitlab安装笔记三_Centos7安装GitLab

    系统版本是CentOS-7-x86_64-Everything-1804.iso,很多软件默认都有了,不需要安装 https://about.gitlab.com/install/#centos-7 ...

  2. spring 5.x 系列第19篇 ——spring简单邮件、附件邮件、内嵌资源邮件、模板邮件发送 (xml配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 邮件发送配置文件为springApplic ...

  3. spring 5.x 系列第11篇 —— 整合memcached (xml配置方式)

    文章目录 一.说明 1.1 XMemcached客户端说明 1.2 项目结构说明 1.3 依赖说明 二.spring 整合 memcached 2.1 单机配置 2.2 集群配置 2.3 存储基本类型 ...

  4. JavaWeb入门_模仿天猫整站Tmall_SSM实践项目

    Tmall_SSM 技术栈 Spring MVC+ Mybatis + Spring + Jsp + Tomcat , 是 Java Web 入门非常好的练手项目 效果展示: 模仿天猫前台 模仿天猫后 ...

  5. TCP/IP 第四、五章

    1, 2, 整个arp请求的过程. 3,arp -a 获取arp高速缓存.一般arp高速缓存存活时间20分钟,不完整的表项设置为3分钟.因为机器的ip地址可能发生改变. 4, 5,arp一般是操作系统 ...

  6. 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

  7. (数据科学学习手札63)利用pandas读写HDF5文件

    一.简介 HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式,文件后缀名为h5,存储读取速度非常快,且可在文件内部按照明确的层次存储数据,同一个H ...

  8. ACM之路(转载)

    转载自:https://www.cnblogs.com/tianjintou/p/4139416.html 要注意,ACM的竞赛性强,因此自己应该和自己的实际应用联系起来. 适合自己的才是好的,有的人 ...

  9. 分析了16年的福利彩票记录,原来可以用Python这么买彩票

    目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 上周被一则新闻震惊到了,<2454万元大奖无人认领!福彩史上第二大弃奖在广东中山产生 >,在2019年5月2日开奖 ...

  10. Windows和linux环境下按文件名和字符串搜索命令

    Windows 1.遍历C盘下所有txt 命令:for /r c:\ %i in (*.txt) do @echo %i 注释:for 循环的意思 /r 按照路径搜索 c:\ 路径 %i in   ( ...