错误:org.testng.TestNGException:在类路径中找不到类:EmpClass

36
当我试图运行测试套件时,出现了这个异常。我们在这里使用的是Maven项目,我已经进行了刷新、清理、重新安装testNG,并导入了Maven项目,但仍然出现相同的异常。请建议我可能遗漏了哪些步骤。
错误控制台:
org.testng.TestNGException: 
Cannot find class in classpath: EmpClass

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:543)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1350)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2778)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
at org.testng.xml.XMLParser.parse(XMLParser.java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
at org.testng.xml.Parser.parse(Parser.java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

告诉我们你是如何配置测试用例的。仅凭异常堆栈跟踪,我们无法提供帮助... - Buhake Sindi
我通过使用此链接http://selftechy.com/2012/01/09/setting-up-testng-with-eclipse来配置测试用例。 - user2991323
  1. 我创建了一个新的Java项目
  2. 下载了TestNG存档(testng-6.8.jar文件)
  3. 配置了testng-6.8.jar的构建路径
- user2991323
如果您正在使用Maven,为什么不在Maven POM中包含TestNG,并使用“test”范围?从那里开始,在您的“src/test”文件夹中添加测试类? - Buhake Sindi
对我来说,这个问题最终是因为没有使用标准目录布局而导致的,因此当Maven编译时无法看到所需的Java文件。 - Kimball Robinson
有时我遇到了相同的问题,尝试使用“安装jars bson、Compress extend、freemarker、reactive streams、rxjava、sparkcore、testng”。 - Vaitheeswaran
34个回答

24

我也遇到了相同的异常:

我尝试了以下步骤:

  1. 在Eclipse中执行Project > Clean。(仍然出现异常)

  2. 运行另一个项目(testng.xml成功运行)

在运行另一个项目后,我运行了出现异常的项目,幸运的是,它对我起作用了,没有错误发生。


遇到了相同的错误。清理项目对我有用。 - somnathchakrabarti
每次运行TestNG测试后,我都必须执行mvn clean install,然后重新运行测试。否则,错误将持续存在。 - somnathchakrabarti
2
在Intellij IDE中 - 文件->无效缓存->无效缓存/重启->无效并重启 - Yuval Levy
2022年,它仍然有效。我只是通过导航“构建”>“重新构建项目”来重建了mvn项目。 - deokyong song

15

您需要编辑测试运行器的XML文件。请参考以下示例:

 <test name="Employees Test">
               <classes>
                      <class name="packagename.classname">
                       </class>
               </classes>
 </test>

<class name="packagename.classname">行中,您必须输入测试包名称,然后是要运行的类的名称。

谢谢,祝您一切顺利。


1
它对我完全没有用。而且也没有任何意义 - 如果它找不到TestNGException文件,如何帮助精确定位测试类呢? - Gangnus
1
哦,抱歉,我的IntelliJ找不到TestNGException本身...那么你的解释中只有一个问题:你不能在一个测试描述中指向类和包,否则会显示为错误。你的例子是正确的。 - Gangnus
酷,祝你好运 :) - Nael Marwan
1
我遇到了同样的错误,这很有帮助!谢谢,伙计 :) - JustToKnow

14

我曾遇到类似的问题,在导入 maven 与 TestNG 项目时。通过以下步骤将其转换成 TestNG 项目,问题得以解决:

右键单击 Eclipse 项目 > TestNG > 转换为 TestNG

然后用新创建的 testng.xml 文件替换现有的文件。最后使用 mvn install 清理和更新 Maven 项目。

注意:备份您的 testng.xml 文件。


9

项目>>清理和Maven>>更新项目,这对我有用。


5

请前往项目>构建路径>配置构建路径>库>移除错误库

刷新项目后再次运行程序。


2

我遇到了同样的错误。我清理了maven项目,然后问题就得到了解决。


2

我对这个问题的看法是:我遇到了同样的问题,因为我的路径中有一部分是用西里尔字母书写的。所以请检查项目路径是否包含特殊字符。一旦我删除了这些字符,问题就得到了解决。


1

我在使用selenium 3.11.xx依赖项时遇到了同样的问题,但当我使用selenium 3.4.x依赖项时,问题得到了解决。


1

我也遇到了TestNG 6.14.2版本的同样问题。

然而,这是由于我的愚蠢错误造成的,与maven、testng或eclipse没有任何问题。 我所做的是 -

  1. 运行项目为“mvn clean”
  2. 选择“testng.xml”文件,右键单击它以作为TestNG套件运行
  3. 这会给我带来与原始问题中报告的相同的错误
  4. 我很快意识到我没有编译项目,并且所需的类文件尚未生成,TestNG随后将利用这些文件
  5. 只有在编译项目(运行为“mvn build”)后,“target”文件夹才会生成
  6. 如果您的项目已经编译,则不应该出现此问题。

1
如果您使用的是IntelliJ IDEA,请尝试以下步骤:
  1. 从“文件”菜单中,选择“无效化缓存 / 重启”选项。
  2. 点击“无效化并重启”按钮以确认此操作。
  3. 然后,IDEA将会被重新启动。
  4. 您将可以找到一个新的副本项目。
  5. 然后,您需要导入/更改项目格式为Maven项目。IDEA将在右下角显示相应选项。
  6. 之后,您应该能够运行您的项目了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接