Java Selenium TestNG:如何使用TestNG从已编译的jar运行Selenium测试?

Java Selenium TestNG:如何使用TestNG从已编译的jar运行Selenium测试?,java,maven,selenium,testng,Java,Maven,Selenium,Testng,我们通常使用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"> <t

我们通常使用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>
可能值得注意的是,我的项目是一个maven项目,所以主文件夹和测试文件夹是分开的


提前谢谢

我有一个类似的需求,其中我必须作为testngjar运行测试,而不是通过maven测试阶段。记录步骤


HTH

以下检查点可能会解决您的问题:

  • 确保没有丢失任何与TestNG相关的JAR文件,并将它们添加为可执行JAR
  • 线程“main”java.lang.NoClassDefFoundError中出现异常:表示在类路径中找不到您尝试运行的类。检查目标/类一次
  • 对每个类使用@Test注释

  • 接受这个答案。谢谢
    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();
        }
    }
    
    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]