[英]Selenium TestNG: How can I run selenium tests from a compiled jar using TestNG?
我們通常使用TestNG xml runner運行我們的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文件中運行所有內容。
我找到了這篇 SO帖子,並試用了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項目,所以主要和測試文件夾是分開的。
提前致謝!
我有一個類似的要求,其中我必須運行測試作為testng jar而不是通過maven測試階段。 這里記錄的步驟。
HTH
檢查點下方可能會解決您的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.