Mac : testNG脚本执行testng.xm

发表于:2018-9-06 10:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈琰AC    来源:简书

  一、编辑testng_run.sh脚本如下
java -classpath "%classpath%:/Users/ac/lib/testng-6.14.3.jar:/Users/ac/lib/jcommander-1.72.jar:/Users/ac/eclipse-workspace/testng-test/bin" org.testng.TestNG /Users/ac/eclipse-workspace/testng-test/testng.xml
  脚本详解:
  1、双引号中的命令是将testng-6.14.3.jar 、 jcommander-1.72.jar、测试代码的.class目录加入classpath中;
  2、org.testng.TestNG 用TestNG类中的main函数来执行
  3、/Users/ac/eclipse-workspace/testng-test/testng.xml  将testng.xml传入TestNG main函数执行
  代码结构如图
   
  目录结构图
   
  xml配置
  二、其中遇到的问题
  2.1 classpath 问题
  网上很多文章都是直接通过命令执行 :java org.testng.TestNG testng.xml 然后会提示错误
  找不到或无法加载主类 org.testng.TestNG
  参照网上提供的方法给TestNG配置配置classpath 依然不行,如下:
  export TESTNG_HOME=/Library/TESTNG
  export CLASSPATH=$CLASSPATH:$TESTNG_HOME/testng-6.8.jar:
  放弃上面这种方式,采用在执行时再指定jar路径,如下:
  java -classpath "%classpath%:/Users/ac/lib/testng-6.14.3.jar:/Users/ac/lib/jcommander-1.72.jar:/Users/ac/eclipse-workspace/testng-test/bin"

  2.2 缺少 jcommander.jar
  错误提示为
  Error: A JNI error has occurred, please check your installation and try again
  Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
  at java.lang.Class.getDeclaredMethods0(Native Method)
  at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
  at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
  at java.lang.Class.getMethod0(Class.java:3018)
  at java.lang.Class.getMethod(Class.java:1784)

  究其原因是因为缺失了 jcommander.jar ,加入 jcommander.jar 引用后,问题解决。
  进入http://mvnrepository.com搜索 jcommander 下载jar包
  2.3 找不到testNG class
  错误提示为
  Cannot find class in classpath: com.NewTest2
  Exception in thread "main" java.lang.NullPointerException
  at org.testng.TestNG.getStatus(TestNG.java:211)
  at org.testng.TestNG.main(TestNG.java:1324)

  需要指定class路径,我的路径为/Users/ac/eclipse-workspace/testng-test/bin 所以命令为
  java -classpath "/Users/ac/eclipse-workspace/testng-test/bin"
  三、打开执行结果html
  执行testng_run.sh 脚本后
  . testng_run.sh
  会在当前目录输出执行结果,生成目录test-output ,该目录中有emailable-report.html,我们可以在testng_run.sh脚本中加入用脚本代码自动打开
  open file:///Users/ac/eclipse-workspace/sh/test-output/emailable-report.html
  执行结果
   
   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号