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

Posted

技术标签:

【中文标题】错误:org.testng.TestNGException:在类路径中找不到类:EmpClass【英文标题】:Error: org.testng.TestNGException: Cannot find class in classpath: EmpClass 【发布时间】:2014-10-22 00:39:09 【问题描述】:

当我尝试运行测试套件时,我得到了这个异常。我们在这里使用 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)

【问题讨论】:

告诉我们您是如何配置测试用例的。我们不能只看异常堆栈跟踪...... 我通过这个链接selftechy.com/2012/01/09/setting-up-testng-with-eclipse配置测试用例 1) 我创建了一个新的 java 项目 2) 下载了 TestNG 存档(testng-6.8.jar 文件) 3) 配置 testng-6.8.jar 的构建路径 如果您使用 Maven,为什么不在您的 Maven POM 中包含 TestNG 并使用 test 范围?从那里,将您的测试类添加到您的 src/test 文件夹中? 对我来说,这个问题原来是没有使用标准目录布局的问题,所以maven在编译时没有看到需要的java文件。 【参考方案1】:

这里也是同样的问题。在我的情况下,它是由一个单独的 test 包中的一个抽象测试类引起的,我的所有 NG 测试都来自该包。一旦我将该抽象类移动到测试包的根目录,它就可以工作了。

【讨论】:

【参考方案2】:

当侦听器位于 src/main/java 文件夹下并且基类位于 src/test/java 下时,我遇到了同样的问题,我将基类移动到 src/main/java 下,它运行良好l

【讨论】:

【参考方案3】:

如果您使用 IntelliJ IDEA,请尝试以下操作:

    从“文件”中选择“使缓存无效/重新启动”选项。 单击“无效并重新启动”按钮确认此操作。 然后IDEA会重启。 然后您将找到您的项目的新副本。 然后您需要将项目格式导入/更改为 Maven 项目。 IDEA 将在右下角显示选项。 在此之后,您应该可以运行您的项目了。

【讨论】:

【参考方案4】:

当系统本地未安装 MAVEN 时会发生这种情况。

当我从 GIT 克隆一个基于 Maven 的项目时,我遇到了同样的问题,然后我一执行就遇到异常“无法在 ClassPath 中找到类:类名”

于是我做了一个mvn clean test,发现本地没有安装maven。

在完成 sudo apt install maven Maven 安装后,我能够运行代码

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

让我分享一下对我有用的东西:

    当我们执行“mvn clean”时 - 我们正在清理旧的编译类 请转到位置“你的项目目录 -> 目标”,你会发现这个文件夹正在被清理,因为这是 MVN 放置它的编译工件的地方

    既然它已经是一个 MAVEN 项目,那么请转到您的项目文件夹并在命令提示符下打开。并发出“mvn clean”,然后发出“mvn test” -> “mvn test”命令会将所有编译后的文件放在适当的文件夹下,然后您可以通过 TestNG 或 MAVEN 本身运行测试。

    确保有时将“M2_HOME”或“MAVEN_HOME”设置到您的环境路径 “MAVEN_HOME”不起作用,所以也要添加“M2_HOME”(谷歌这个设置)

以上建议对我有用,所以我想分享一下,祝你好运

【讨论】:

【参考方案7】:

确保您的课程在 src 下。

【讨论】:

【参考方案8】:

您应该先创建,然后在该包下创建新的 TestNG 类。

【讨论】:

【参考方案9】:

我也有这个问题。 我正在使用 IntelliJ IDEA。 我将src/main/java 用于配置文件,src/test/java 用于测试文件。 因为这个 testNG 找不到类路径。 为防止出现该错误,需要将所有文件从 src/main/java 移动到 src/test/java,反之亦然。

【讨论】:

【参考方案10】:

对我来说,是我在项目的 Maven 构建中添加了 Skip Tests 复选框/标志

因此测试类没有被编译然后TestNG没有找到

【讨论】:

【参考方案11】:

在尝试了我在这个问题上找到的所有方法后,在 eclipse 中,

我选择了我的项目 --> 右键 --> 运行方式 --> Maven generate-sources

然后我重新运行了我的 TestNG 项目,它运行得非常好,没有任何问题。希望对您有所帮助:)

【讨论】:

【参考方案12】:

当我在 IntelliJ IDEA 上将我的项目从一台 PC 导入到另一台 PC 时,我遇到了同样的问题。

以下解决方案对我有用:

    使用 Git 导入项目。 导入 IDE 后会在右下角提示您一个对话框,显示“导入为 Gradle”,您需要选择该对话框,但请确保您已正确设置 JAVA_HOME 和 GRADLE(Gradle Home 或 Gradle 包装器都应该工作)。 运行 build.gradle 并确保所有依赖项都已正确下载且没有任何错误。 现在转到您的测试用例并尝试使用 TestNG 或 JUnit 运行,如果您正确执行了上述 3 个步骤,您应该能够运行测试用例。

【讨论】:

【参考方案13】:

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

【讨论】:

【参考方案14】:

我在使用 TestNG 6.14.2 版时也遇到了同样的问题

但是,这是由于我的一个愚蠢的错误,maven、testng 或 eclipse 没有任何问题。我正在做的是-

    以“mvn clean”运行项目 选择“testng.xml”文件并右键单击它以作为TestNG套件运行 这给了我与原始问题中报告的相同的错误 我很快意识到我还没有编译项目,也没有生成 TestNG 随后会使用的所需类文件 项目编译后才会生成“target”文件夹(运行为“mvn build”) 如果您的项目已编译,则不应存在此问题。

【讨论】:

【参考方案15】:

这个问题可以通过将TestNG.class包添加到OnlineStore包中来解决

    步骤 1:构建路径 > 配置构建路径 > Java 构建路径 > 选择 “项目”标签 第 2 步:单击“添加”按钮并选择包含 TestNG 来源。 第 3 步选择 TestNG.xml 作为“TestNG Suite”运行

【讨论】:

【参考方案16】:

项目>>清洁和 Maven>>更新项目为我工作

【讨论】:

【参考方案17】:

我在这个问题上的 2 美分:我遇到了同样的问题,而我的路径的某些部分是西里尔文。因此,请检查项目的路径是否有特殊字符。一旦我删除它,问题就解决了

【讨论】:

【参考方案18】:

我也遇到了同样的异常:

我尝试了以下步骤:

    在 Eclipse> 项目 > 清理。 (例外仍然存在)

    我跑了另一个项目(testng.xml跑成功了)

运行另一个项目后,我运行了我得到异常的项目,幸运的是它对我有用,没有错误。

【讨论】:

面临同样的错误。清理项目对我有用。 每次运行 TestNG 测试后,我都必须执行 mvn clean install 然后重新运行测试。否则,错误仍然存​​在。 在 Intellij IDE 中-文件->使缓存无效->使缓存无效/重新启动->使无效并重新启动【参考方案19】:

在我的情况下,我将 maven 项目作为 eclipse 中的默认现有项目导入。之后我导入为 maven 项目。这对我有用。

【讨论】:

【参考方案20】:

对我来说,问题是因为我从 POM 中的编译中排除了测试。我的 pom.xml 看起来像这样:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <testExcludes>
            <exclude>com/mycompany/app/AppTest.java</exclude>
        </testExcludes>
    </configuration>
</plugin>

删除&lt;exclude&gt; 后,我能够再次在AppTest.java 中运行测试。

【讨论】:

【参考方案21】:

直到最近我还没有遇到任何问题。

现在我必须将套件的 xml 测试文件移动到我正在测试的项目的根目录中。

可能是有一个设置指向我正在测试的类,但我没有找到它。

【讨论】:

【参考方案22】:

我今天遇到了上述同样的问题。 **在eclipse中再次设置类路径**解决了这个问题。

【讨论】:

【参考方案23】:

在我看来,如果 src 有 test/java/ 文件夹,那么在构建路径中的输出位置应该类似于 target/test-classes。

如果 src 有 main/java/ 文件夹,那么在构建路径中的输出位置应该类似于目标/类。

【讨论】:

【参考方案24】:

转到 项目>构建路径>配置构建路径>库>删除错误库

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

【讨论】:

【参考方案25】:

对我来说,这个问题很奇怪。 我的 Eclipse 项目的根目录中有一个 testng.xml 文件。当我通过 Eclipse 更改文件时,它并没有更改我目录中的 testng.xml 文件。

原来它将该文件夹的副本复制到 Eclipse 工作区中。..

希望这对某人有所帮助

【讨论】:

【参考方案26】:

在类中包含包名。它会删除你的名字。我也遇到了同样的问题,但是添加带有类的包名称解决了这个问题。

【讨论】:

【参考方案27】:

在 testng.xml 文件中,删除“.”如果您不使用包,则来自标记“”类名。

【讨论】:

【参考方案28】:

我在使用 testng 项目导入 maven 时遇到了类似的问题。通过

再次转换为 TestNg 项目解决了这个问题

右击eclipse项目>TestNG>转换为TestNG

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

注意:备份您的testng.xml

【讨论】:

【参考方案29】:

让 IDE 再次工作。该解决方案非常有趣 - 甚至重新安装,删除 IDE 并不能在 Windows 上修复它。在这种情况下,您需要做的是转到 testNG 运行配置 - 并将它们全部删除。 这是针对 Windows 操作系统上的 TestNG XML 类路径错误。我正在使用弹簧工具套件 3.6.4。

确保删除所有配置,确保项目可以构建,如果没有问题,现在应该运行测试。

问候 -安东尼·托里

【讨论】:

【参考方案30】:

注意:您必须指定类名以及包,如下所示。

<suite name="testNGLearning">
    <test name="simpleTest">
        <classes>
            <class name="testngTests.TestNGSimpleTest" />
            <class name="testngTests.TestMessageUtil" />
        </classes>
    </test>
</suite>

【讨论】:

以上是关于错误:org.testng.TestNGException:在类路径中找不到类:EmpClass的主要内容,如果未能解决你的问题,请参考以下文章

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理

PHP的错误处理