TestNG ERROR在类路径中找不到类

时间:2011-09-29 17:11:46

标签: java classpath testng

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

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

Testng没有运行而是抛出:

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

之前我遇到过同样的问题而且我刚刚添加了。

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

31 个答案:

答案 0 :(得分:34)

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

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

答案 1 :(得分:16)

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

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

[TestNG] [错误]无法在类路径中找到类:注册     问题是固定的......

答案 2 :(得分:8)

只做Eclipse&gt;项目&gt;清理然后再次运行测试用例。它应该工作。

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

答案 3 :(得分:6)

我遇到了同样的问题,我尝试的内容如下。

  1. 清理项目(右键单击pom.xml并清理)
  2. 并更新maven项目(Project&gt; Maven&gt; Update Maven Project)
  3. 这解决了这个问题。

答案 4 :(得分:4)

添加到pom:

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

答案 5 :(得分:4)

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

  1. 在命令提示符下,确保您导航到放置了testng.xml文件的文件夹。
  2. 导航到{li>后,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. 我遇到了同样的情况,但上述事情对我有用。

答案 6 :(得分:2)

确保您的suite.xml不应具有.java扩展名

前:

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

答案 7 :(得分:1)

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

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

您需要删除以下文件夹中对jar的引用:JetBrains \ IntelliJ IDEA社区版 VERSION

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

如果项目是Maven项目,则可以添加maven surefire插件并提供testng套件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>

答案 8 :(得分:1)

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

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

答案 9 :(得分:0)

在Intellij中,为我解决了这个问题的是打开Maven右侧工具栏

选择“清理”,“安装”并点击“播放”按钮:

see screenshot

答案 10 :(得分:0)

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

答案 11 :(得分:0)

类生成步骤的问题。 您可以通过资源管理器转到项目文件夹并删除类。 之后,再次运行“构建”您的项目。 现在,您的问题已解决

答案 12 :(得分:0)

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

答案 13 :(得分:0)

使用 IntelliJ 时遇到了类似的问题,如果它可能对其他人有帮助,那么对我来说固定的是更改Use classpath of module字段,将其作为显示软件包名称。

enter image description here

答案 14 :(得分:0)

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

这解决了我的其他问题

答案 15 :(得分:0)

使用 maven

时遇到相同的问题

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

由于我更改了类名,因此 testng 文件未更新。

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

RestAssuredTest在testNG中误写为RestAssuredest

此问题的原因之一

import sys
from PyQt5.QtWidgets import (QMainWindow, QLabel, QGridLayout, qApp,
                             QApplication, QWidget, QPushButton)
from PyQt5.QtCore import QSize, Qt   

class HelloWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Hello world") 

        centralWidget = QWidget()          
        self.setCentralWidget(centralWidget)   

        title = QLabel("Hello World from PyQt") 
        title.setAlignment(Qt.AlignCenter) 

        button = QPushButton("Quit")
        button.clicked.connect(qApp.quit)            # <---

        gridLayout = QGridLayout(centralWidget)          
        gridLayout.addWidget(title,  0, 0)
        gridLayout.addWidget(button, 1, 0)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWin = HelloWindow()
    mainWin.show()
    sys.exit( app.exec_() )

答案 16 :(得分:0)

Eclipse ->右键单击 Project -> 构建路径 -> 配置 -> Java构建路径

添加库 -> JRE lib

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

答案 17 :(得分:0)

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

我面临同样的问题,经过多次尝试后我找到了解决问题的第3个解决方案

答案 18 :(得分:0)

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

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

输入

java org.testng.TestNG testng.xml   

再次按输入

我希望这有效!

答案 19 :(得分:0)

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

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

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

答案 20 :(得分:0)

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

要解决此问题,您应该将类​​文件从默认pkg移动到其他pkg;即创建一个新的pkg并将您的类文件放在那里

答案 21 :(得分:0)

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

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

答案 22 :(得分:0)

避免错误

  

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

您需要在一个地方保留Runner类和Test类。我的意思是src和测试文件夹。

答案 23 :(得分:0)

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

答案 24 :(得分:0)

如果您在Eclipse(Mars)IDE中打开了项目: 在eclipse中右键单击该项目 单击TestNG 单击&#34;转换为TestNG&#34;

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

以Maven测试版本运行。

答案 25 :(得分:0)

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

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

答案 26 :(得分:0)

就我而言,包结构不合适,就像文件夹和子文件夹一样。我删除了该项目,并通过更改相应的jre再次导入。之后它对我有用。 例如文件夹结构 - TestProject                             -TestSuite1      包结构 - TestProject.TestSuite1

答案 27 :(得分:0)

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

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

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

答案 28 :(得分:0)

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

答案 29 :(得分:0)

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

e.g

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

答案 30 :(得分:0)

更改TestNG输出路径(项目属性 - &gt; TestNG - &gt;输出目录)后,它对我有效。