TestNG ERROR在类路径中找不到类

问题描述 投票:23回答:26

我正在尝试通过命令行运行testng,我在classpath中有以下内容:

  • testng jar,jar编译的测试用例文件和其他必需的jar。
  • testng.xml指向层次结构中的适当类。

Testng不运行而是抛出:

[TestNG] [ERROR]  Cannot find class in classpath: (name of testcase file)

我之前遇到过同样的问题而且我刚才补充道。

classpath,它解决了这个问题。但这次它似乎没有解决它。任何解决方法?提前致谢。

java classpath testng
26个回答
36
投票

我刚刚遇到这个问题而且我非常有信心这是eclipse的TestNG插件中的一个错误,因为我能够从命令行运行我的测试就好了。

似乎对我和其他人有用的修复只是为了清理你的项目(ProjectClean)。一个人不得不重新安装整个插件。


0
投票

我必须从我的测试类中创建一个jar文件并将其添加到我的类路径中。以前我将测试类文件添加到类路径,然后我得到了上面的错误。所以我创建了一个jar并添加到classpath中。

e.g

java -cp "my_jars/*" org.testng.TestNG testing.xml

0
投票

检查类层次结构。如果您的课程中缺少包裹,您将收到此错误。因此,尝试通过选择包来创建新的测试类。


0
投票

更改TestNG输出路径(项目属性 - > TestNG - >输出目录)后,它为我工作。


0
投票

我刚遇到这个问题,是因为检查了运行配置中的跳过测试选项。使得unchecked和build,然后运行testNg,工作。


0
投票

我得到了同样的错误 - 在类路径中找不到类:

解决方案:我犯下了以下错误:

  1. 我的班级没有任何一揽子计划。所以我创建了一个包,然后在该包下创建了我的类。
  2. 我没有在xml文件中提到完整路径。恩。 。所以我也纠正了它。
  3. 然后我右键单击xml文件并运行TestNG我的程序成功执行。

0
投票

在我的情况下,包结构不正确,它就像文件夹和子文件夹。我删除了该项目,并通过更改相应的jre再次导入。之后它对我有用。例如文件夹结构 - TestProject -TestSuite1包结构 - TestProject.TestSuite1


0
投票

我面临同样的问题解决方案是,你需要检查testng文件,在这个案例类中创建的类是通过Test NG找不到的。执行以下步骤只需将您的项目转换为测试NG并使用新的testNG文件覆盖/写入/ rplace。

在这种情况下再次运行此TestNG它正在处理我的情况,


0
投票

如果您在Eclipse(Mars)IDE中打开项目:在eclipse中右键单击项目单击TestNG单击“转换为TestNG”

这将创建一个新的testng.xml文件并提示您覆盖现有文件(!!!警告,这将删除您以前的testng.xml !!!)。单击是。

作为Maven测试版本运行。


0
投票

我尝试了上面的所有建议,但它对我的情况不起作用。事实证明我的项目构建路径有一个错误(无法找到一个相关的jar)。修复该错误后,testng再次在我的Eclipse中运行。


0
投票

避免错误

在类路径中找不到类:(测试用例文件的名称)

你需要在一个地方举行Runner类和Test类。我的意思是src和测试文件夹。


17
投票

如果您的包名是FabFurnishPackage并且您的类名是注册的,那么xml中的代码应该是

<classes>
<class name="FabFurnishPackage.registration">
</classes>

[TestNG] [ERROR]在类路径中找不到类:注册问题已修复...


0
投票

我遇到了同样的问题。每当我运行我的测试时,它都会继续说类路径中找不到的类。我试图修复testng.xml文件,清理项目以及答案在这里说的所有内容,但都没有。最后,我在构建路径中检查了我引用的库,并且有34个无效的库,结果我已经从我从中获取jar文件的路径重命名了一个文件夹。我修复了路径,测试成功运行。

因此,在尝试其他方法来解决此问题之前,检查引用的jar文件中是否存在任何错误可能会很有成效。


0
投票

当我尝试执行我的Testng.xml文件时,我遇到了类似的问题。

要修复你应该将你的类文件从默认pkg移动到其他pkg;即创建一个新的pkg并将您的类文件放在那里


0
投票

我也面临同样的问题。我试图以不同的方式设置类路径,它适用于我:

set classpath="projectpath"\bin;"projectpath"\lib\*     

按Enter键

java org.testng.TestNG testng.xml   

再次按Enter键

我希望这有效!


0
投票

当我用默认的pacage和一个名为addition的类转换我的项目到testng.xml。它转换为:

<classes>
      <class name=".addition"/>
</classes>

并抛出无法加载类的错误。如果我删除。在添加之前,代码工作正常。所以要小心默认包。


0
投票

由于某些构建错误,此问题即将发生。 1.清理项目 - 如果问题未解决2.更新maven项目 - 如果仍未解决3.从构建路径(右键单击项目 - >属性 - > java构建路径)现在检查库文件。如果您看到错误,请通过在给定位置添加丢失的文件来解决它。

我遇到了同样的问题,经过大量的方法,我找到了解决问题的第3个解决方案


0
投票

Eclipse - >右键单击Project - > Build Path - > Configure - > Java Build Path。

添加库 - > JRE lib。

添加您在系统中使用的最新Java库,并删除其他旧的JRE库并保存它。


0
投票

我在使用maven时遇到了同样的问题

有效的解决方案是,testNG文件中类的名称与实际类名称不同

由于我更改了classname和testng文件没有更新。

因此,请确保testNG文件中的className应与实际的className匹配

RestAssuredTest被误写为testNG中的RestAssuredest

这个问题的原因之一

<?xml version="1.0" encoding="UTF-8"?>

 <suite name="Suite">
   <test name="Test">
<classes>
  <class name="com.mycompany.app.AppTest"/>
  <class name="com.mycompany.app.RestAssuredTest"/>
 <class name="com.mycompany.app.appiumTests"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

0
投票

右键单击项目 - >转到maven - >更新项目

当没有别的办法可以解决我的问题


0
投票

使用IntelliJ遇到了类似的问题,如果它对其他人有帮助,为我修复它的是更改Use classpath of module字段,将其作为显示包名称的字段。

enter image description here


0
投票

如果您已重命名testNG类并且在测试套件xml文件中未重命名,则会出现此错误。我也修正了xml文件,它对我有用。


8
投票

只需执行Eclipse> Project> Clean,然后再次运行测试用例。它应该工作。

它在后台的作用是,它会在你的项目目录中调用mvn eclipse:clean,这将删除你的.project和.classpath文件,你也可以做一个mvn eclipse:eclipse - 这会重新生成你的.project和.classpath文件。因此在类路径中添加所需的类。


6
投票

我面临同样的问题,我尝试的是如下。

  1. 清理项目(右键单击pom.xml并清理)
  2. 并更新maven项目(Project> Maven> Update Maven Project)

这解决了这个问题。


4
投票

在从命令提示符运行testng.xml文件的命令之前,如果缺少它们,请检查以下内容

  1. 在命令提示符下,确保您导航到放置testng.xml文件的文件夹。
  2. 导航到那之后,set CLASSPATH并包含testng jar文件位置,selenium-server jar文件位置(如果你正在使用selenium webdriver),项目的bin文件夹位置,其中包含项目的所有.class文件。 例如,set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
  3. 现在运行命令java org.testng.TestNG testng.xml.

我遇到了同样的情况,但上述事情对我有用。


4
投票

加到pom:

        <build>
            <sourceDirectory>${basedir}/src</sourceDirectory>
            <testSourceDirectory>${basedir}/test</testSourceDirectory>
             (...)
            <plugins>
                (...)
            </plugins>
        </build>

2
投票

确保你的suite.xml不应该有.java扩展名

例如:

<test name="Test C1">
    <classes>
        <class name="com.taxi.suiteC.TestCase_C1" ></class>  
    </classes>
</test>

1
投票

请确保您已在TestNG.xml文件中指定了您的类/包。

<test name="test1" preserve-order="false">
    <classes>
        <class name="ABC"/>
    </classes>
</test>


1
投票

如果上述答案都不起作用,您可以在IDE中运行测试,获取类路径并在命令中使用它。例如:如果您使用的是Intellij IDEA,您可以在控制台顶部找到它(截图如下)。 Intellij Console

单击突出显示的部分将展开并显示完整的类路径。

您需要删除文件夹中对jar的引用:JetBrains \ IntelliJ IDEA Community Edition VERSION

java -cp "path_copied" org.testng.TestNG testng.xml

如果项目是Maven项目,您可以添加maven surefire插件并提供testng suite XML文件路径,导航到项目目录并运行命令:mvn clean install test

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>config/testrun_config.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
© www.soinside.com 2019 - 2024. All rights reserved.