1.编写主函数TestMain.java,调用testng.xml
public class TestMain {
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包
1.1 改写文件路径
防止报错:
D:\SVN\soutu-autotest221228\soutu-autotest\out\artifacts\soutu_autotest_jar>java -jar soutu-autotest.jar
错误: 找不到或无法加载主类 com.yuanqing.TestMain
把所有除java以外的文件路径都改成.
然后执行jar包的时候,把这些文件都复制一份到jar的同目录下
(因为打的jar包里面不会把这些文件打进去)
2.2 打jar包
File—Project Structure—Artifacts—右边的+号—JAR—From modules with dependencies…
直接点击ok
3.点击Build/Rebuild刚才生成的文件
构建后自动生成out文件夹,target文件夹和META-INF文件,如下图:
4.执行jar包
将testng.xml文件复制一份到jar包同目录下:
PS:这里的chromedriver.exe和url.properties是用例中调用的文件,路径直接写文件名,如:
properties.load(new FileInputStream("url.properties"));
Win+R打开cmd,进入jar包所在目录。输入:
C:\Users\Desktop\autotest\out\artifacts\tiansu_autotest_jar>java -jar tiansu-autotest.jar
此时报错:
Error: A JNI error has occurred, please check your installation and try again
原因:java -verion 和 javac -version 版本不一致,编译的版本更高。因为我打包用的是IDEA自带的JDK11,而本机装的是JDK1.8。
解决方法:把IDEA里JDK版本改成1.8,重新打jar包。
部分转载自:https://www.cnblogs.com/hkgov/p/8074085.html
1.打开project settings,确定项目的jdk和sdk是是否配置正确
1.1 project 下的project SDK,是否为项目需要的jdk
1.2 确定SDK是否选中
1.3 language level不能比项目的jdk版本高
1.4 确定modules下dependencies配置的jdk是否正确
2 “run–edit configurations” >>>需要运行的项目名称 >>>>>>runner >>>>JRE配置是否正确
3.再次执行,成功
- 进入jar包所在目录,执行:
java -Dfile.encoding=utf-8 -jar tiansu-autotest.jar
(-Dfile.encoding=utf-8是为了防止乱码)
4.查看测试报告
测试报告路径:tiansu_autotest_jar\test-output\html\ index.html