gpt4 book ai didi

java - Selenium 测试NG : How can I run selenium tests from a compiled jar using TestNG?

转载 作者:行者123 更新时间:2023-11-29 04:32:16 24 4
gpt4 key购买 nike

我们通常使用 TestNG xml 运行程序启动我们的 Selenium 测试。示例 XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="P1_jobSeeker" parallel="classes" preserve-order="true" thread-count="1">
<test name="P1_jobSeeker-1">
<classes>
<class name="pamr.testCases.jobSeeker.PAMRAutoJS12Part1"/>
<class name="pamr.testCases.jobSeeker.PAMRAutoJS12Part2"/>
<class name="pamr.testCases.jobSeeker.PAMRAutoJS12Part3"/>
</classes>
</test>
</suite>

现在我想在没有源文件的情况下,在 IDE 之外执行此操作,并且只运行已编译的 jar 文件中的所有内容。

我找到了 this所以发布并正在尝试this来自 TestNG 站点的解决方案。

我已经创建了我的主类并指定了要运行的类。

import java.util.ArrayList;
import java.util.List;

import org.testng.TestNG;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;

public class Main {
public static void main(String[] args) {
XmlSuite suite = new XmlSuite();
suite.setName("P1_jobSeeker");

XmlTest test = new XmlTest(suite);
test.setName("P1_jobSeeker-1");
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(new XmlClass("pamr.testCases.jobSeeker.PAMRAutoJS12Part1"));
classes.add(new XmlClass("pamr.testCases.jobSeeker.PAMRAutoJS12Part2"));
classes.add(new XmlClass("pamr.testCases.jobSeeker.PAMRAutoJS12Part3"));
test.setXmlClasses(classes);

List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
}
}

在将项目导出到 jar 之前,我尝试运行 main 但我在这一行得到了 java.lang.ClassNotFoundException:XmlSuite suite = new XmlSuite();

完整的控制台堆栈:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/xml/XmlSuite
at Main.main(Main.java:11)
Caused by: java.lang.ClassNotFoundException: org.testng.xml.XmlSuite
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [util.c:840]

可能值得注意的是,我的项目是一个 Maven 项目,因此主文件夹和测试文件夹是分开的。 enter image description here

提前致谢!

最佳答案

我有一个类似的要求,其中我必须以 testng jar 的形式运行测试,而不是通过 Maven 测试阶段。记录的步骤 here .

HTH

关于java - Selenium 测试NG : How can I run selenium tests from a compiled jar using TestNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com