当前位置: 首页 > 知识库问答 >
问题:

尝试从main方法运行TestNG时,无法在类路径中找到类

岳飞航
2023-03-14
public class LaunchTests {

public static void main(String[] args) {
    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();
    List<String> suites = new ArrayList();
    suites.add("testng.xml");//path to xml..
    testng.setTestSuites(suites);
    testng.run();

}
    Exception in thread "main" org.testng.TestNGException: 
Cannot find class in classpath: package.TestOne
    at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
    at org.testng.xml.XmlClass.init(XmlClass.java:73)
    at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
    at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:548)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.testng.xml.XMLParser.parse(XMLParser.java:38)
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16)
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9)
    at org.testng.xml.Parser.parse(Parser.java:172)
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:302)
    at org.testng.TestNG.run(TestNG.java:991)
    at util.LaunchTests.main(LaunchTests.java:17)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite1" parallel="methods" thread-count="1">

    <test name="Chrome Adviser Portal" allow-return-values="true"
        thread-count="1">
        <parameters>
            <parameter name="browser" value="chrome" />
            <parameter name="loginType" value="adviser" />
        </parameters>
        <classes>
            <class name="adviserPortal.AdviserLogin" />
        </classes>
    </test>
</suite>

共有1个答案

周辉
2023-03-14

您提到可以通过maven surefire插件从eclipse内部运行测试,但不能仅在执行main方法时运行它。

只有当类launchtests位于src/main/java中,并且套件xml文件testng.xml引用src/test/java中的类时,才能发生这种情况。src/main/Java中的Java类不可见于src/test/Java中的Java类。这解释了为什么TestNG抛出异常无法在类路径中找到类

如果您的launchtests移动到src/test/java,那么默认情况下它不会包含在您正在构建的uber jar(可执行jar)中,因为测试类被省略了。

    null
 类似资料:
  • 我试图通过命令行运行testng,在类路径中有以下内容: testngjar,编译的测试用例文件的jar。testng。xml指向层次结构中的适当类。 在maven中,所有这些都可以正常工作,但在尝试从命令行运行时: 我得到以下错误: [TestNG][Error]在类路径:com中找不到类。公司Rest农场管理员测试 我做错了什么?

  • 我正在执行Java-Eclipse-TestNG,但在使用testng命令行运行测试时遇到了困难。我有多个源文件夹,当创建。class文件时,它们将转到/bin目录,文件夹结构与/src相同,如下所示。我已经设置了类路径(使用导出classpath=...)并尝试运行“java org.testng.testng testng.xml”,但它给我的结果是“不能在类路径中找到类:testcases.

  • 我一直在为我在IntelliJ的工作编写一个小系统,在编写过程中使用依赖项构建JAR,以检查我是否可以以一种可以让它在IntelliJ之外运行的方式构建它。有一天,当我试图打开罐子时,它开始给我JNI错误。我花了好长时间试图修复它,最后(在某种程度上)通过编辑我的清单来修复它。构建jar之前的mf文件。我的清单文件现在如下所示: 系统使用sqljdbc连接到azure数据库。它在intelliJ中

  • 我有一个使用testng API动态创建testng.xml文件的项目,因此使用java的main函数,我的项目按预期工作,但是如果我使用'run as->maven build'通过maven运行我的项目,看起来只有BeforeSuite和BeforeTest类在运行,而实际的测试并没有运行。以下是我的pom.xml文件: 最后,这是StackTrace: 我想知道我错过了什么。

  • 为什么我的代码(编译很好)给我以下错误? 在ImageTool类中找不到Main方法,请将Main方法定义为:public static void Main(String[]args)

  • 我有以下项目结构 我的文件夹在Intellij中标记为。