TestNG命令行执行与eclipse环境执行情况不一致

前阵子在命令行使用TestNG跑测试脚本时发现一个奇怪的问题,即同样的代码在eclipse环境下可以正常运行,而在命令行的情况下缺无法执行;


具体场景如下:

1、每个测试单元执行后发一个单元的测试报告

2、多线程执行多个单元,每个单元的测试时间不定

3、eclipse下单线程执行可以发邮件

4、命令行下发邮件提示异常【单线程、多线程都有问题】


解决方式:

1、排除多线程原因导致,即程序本身的问题【使用单线程、多线程2种方式分别启动】

2、排查eclipse与命令行运行的环境差异【命令参数、jar包的版本】


最终问题在第二步解决:

1、使用processExplorer工具查看在eclipse环境下调用testNG的命令行格式

"C:\Program Files\Java\jre7\bin\javaw.exe" -ea -Dfile.encoding=UTF-8 -classpath "/D:/Program Files/eclipse/plugins/org.testng.eclipse_6.8.6.20130607_0745/lib/testng.jar;D:\workspace\myjava\bin;D:\Program Files\eclipse\plugins\org.testng.eclipse_6.8.6.20130607_0745\lib\testng.jar;C:\Program Files\Java\jdk1.6.0_10\lib\ext\selenium-server.jar;D:\ddap\trunk\platform\WebRoot\WEB-INF\lib\ant.jar;D:\checkoutapi\lib\sqljdbc4.jar;D:\checkoutapi\lib\sunjce_provider.jar;D:\checkoutapi\lib\classes12.jar;D:\checkoutapi\lib\commons-codec-1.9.jar;D:\checkoutapi\lib\commons-logging-1.1.3.jar;D:\checkoutapi\lib\json-lib.jar;D:\checkoutapi\lib\mysql-connector-java-3.1.10-bin.jar;D:\checkoutapi\lib\org.apache.httpcomponents.httpclient_4.3.2.jar;D:\checkoutapi\bin;D:\checkoutapi\lib\java-mail-1.4.4.jar;D:\checkoutapi\lib\commons-lang3-3.3.2.jar;D:\workspace\myjava\lib\hadoop-core-1.2.1.jar;D:\workspace\myjava\lib\commons-cli-1.2.jar" org.testng.remote.RemoteTestNG -serport 4257 -d D:\workspace\myjava\test-output C:\DOCUME~1\CHENXI~1\LOCALS~1\Temp\testng-eclipse-1892840512\testng-customsuite.xml
可简化为:
javaw.exe -ea -Dfile.encoding=UTF-8 -classpath "*.jar" org.testng.remote.RemoteTestNG -serport 4257 -d test-output testng.xml

2、分析与命令行启动的参数中不一致的部分【-ea, -Dfile.encoding, RemoteTestNG, -serport】

3、得出缺少部分参数【-ea】

4、补充参数后再次运行,即可成功


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上帝De助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值