TestNG 错误在类路径中找不到类
Posted
技术标签:
【中文标题】TestNG 错误在类路径中找不到类【英文标题】:TestNG ERROR Cannot find class in classpath 【发布时间】:2011-11-27 21:23:08 【问题描述】:我正在尝试通过命令行运行 testng,我在类路径中有以下内容:
testng
jar,编译后的测试用例文件的jar,以及其他需要的jar。
testng.xml
指向层次结构中的适当类。
Testng 不运行而是抛出:
[TestNG] [ERROR] Cannot find class in classpath: (name of testcase file)
我之前遇到过同样的问题,我只是添加了。
在classpath
中,它解决了问题。但这一次似乎并没有解决它。任何解决方法?提前致谢。
【问题讨论】:
我遇到了同样的问题,按照这些步骤帮助我解决了它。 ***.com/a/56656035/10796893 【参考方案1】:我刚刚遇到了这个问题,我很确定这是 Eclipse 的 TestNG 插件中的一个错误,因为我能够从命令行运行我的测试就好了。
似乎对我和其他人有用的修复只是清理您的项目(Project
→ Clean
)。一个人不得不重新安装整个插件。
【讨论】:
如果使用 Maven,清理项目并在更新项目后为我工作。 在 Eclipse 中,转到“问题”选项卡并首先检查您的项目是否未在此处列出并出现严重错误:例如“在错误 X 修复之前无法构建项目。”修复这些错误后,您可以执行项目 --> 清理 每当我搜索 Eclipse 的问题时,我总是会找到清理项目的建议,我可以看到人们评论说它对他们有用,但它对我没有用,我不得不搜索其他选项.这是有原因的吗?【参考方案2】:如果你的包名是 FabFurnishPackage 并且你的类名是注册,那么 xml 中的代码应该是
<classes>
<class name="FabFurnishPackage.registration">
</classes>
[TestNG] [错误] 在类路径中找不到类:注册 问题已解决...
【讨论】:
【参考方案3】:我遇到了同样的问题,我尝试如下。
-
清理项目(右键点击
pom.xml
并清理)
并更新maven项目(Project > Maven > Update Maven Project)
这解决了问题。
【讨论】:
【参考方案4】:只需执行 Eclipse> Project > Clean 然后再次运行测试用例。它应该可以工作。
它在后台的作用是,它将在您的项目目录中调用 mvn eclipse:clean,这将删除您的 .project 和 .classpath 文件,您还可以执行 mvn eclipse:eclipse - 这会重新生成您的 .project 和 .类路径文件。从而在类路径中添加所需的类。
【讨论】:
【参考方案5】:添加到 pom:
<build>
<sourceDirectory>$basedir/src</sourceDirectory>
<testSourceDirectory>$basedir/test</testSourceDirectory>
(...)
<plugins>
(...)
</plugins>
</build>
【讨论】:
这对我有用,但我不明白为什么 - 你能解释一下吗? @nyarasha 这个解决方案对我有用。如果我不得不猜测,那是因为 Maven 为 TestNG 提供了可能存储这些包的目录,然后 TestNG 开始递归查找。即使只是提供 $baseDir 也应该像我自己一样工作。似乎问题根本不在于提供目录。我不确定默认情况下它在哪里,但是在项目中提供一个有效目录允许 TestNG 爬取并找到包的位置。然后,Maven 能够将每个包中的更改构建到 target/ 文件夹中并运行。【参考方案6】:确保您的 suite.xml 不应具有 .java 扩展名
前:
<test name="Test C1">
<classes>
<class name="com.taxi.suiteC.TestCase_C1" ></class>
</classes>
</test>
【讨论】:
【参考方案7】:在从命令提示符运行 testng.xml 文件的命令之前,如果缺少它们,请检查以下内容
-
在命令提示符中,确保导航到放置 testng.xml 文件的文件夹。
导航到
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
现在运行命令java org.testng.TestNG testng.xml.
我也遇到了同样的情况,但上面的事情对我有用。
【讨论】:
这确实有效。谢谢一堆。在 ubuntu 中,我将类路径设置如下:/home/user/eclipse-workspace/seleniumGrid/lib/json.jar:/home/user/eclipse-workspace/seleniumGrid/lib/selenium-server-standalone-3.13.0。 jar:/home/user/eclipse-workspace/seleniumGrid/lib/testng-6.7.jar:/home/user/eclipse-workspace/seleniumGrid/bin 您可以在 ~/.bashrc 文件中永久添加类路径 ----------> CLASSPATH=/home/user/eclipse-workspace/seleniumGrid/lib/json.jar: /home/user/eclipse-workspace/seleniumGrid/lib/selenium-server-standalone-3.13.0.jar:/home/user/eclipse-workspace/seleniumGrid/lib/testng-6.7.jar:/home/user/eclipse -workspace/seleniumGrid/bin【参考方案8】:在我的情况下,包结构不正确,它就像文件夹和子文件夹。我删除了该项目并通过更改相应的 jre 再次导入。之后它对我有用。 例如文件夹结构-TestProject -TestSuite1 包结构-TestProject.TestSuite1
【讨论】:
【参考方案9】:请确保您已在 TestNG.xml 文件中指定您的类/包。
<test name="test1" preserve-order="false">
<classes>
<class name="ABC"/>
</classes>
</test>
【讨论】:
【参考方案10】:如果以上答案都不起作用,您可以在 IDE 中运行测试,获取类路径并在您的命令中使用它。 例如:如果您使用的是 Intellij IDEA,您可以在控制台顶部找到它(截图如下)。
单击突出显示的部分会展开并显示完整的类路径。
您需要删除文件夹内对 jars 的引用:JetBrains\IntelliJ IDEA Community Edition 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>
【讨论】:
【参考方案11】:在 Intellij 中,为我解决问题的是打开 Maven 右侧工具栏
选择“清理”、“安装”并点击“播放”按钮:
【讨论】:
【参考方案12】:我必须从我的测试类中创建一个 jar 文件并将其添加到我的类路径中。以前我将测试类文件添加到类路径中,然后出现上述错误。所以我创建了一个 jar 并添加到类路径中。
例如
java -cp "my_jars/*" org.testng.TestNG testing.xml
【讨论】:
【参考方案13】:检查类层次结构。如果您的课程中缺少该包,您将收到此错误。所以,尝试通过选择包来创建一个新的测试类。
【讨论】:
【参考方案14】:更改 TestNG 输出路径(项目属性-->TestNG-->输出目录)后,它对我有用。
【讨论】:
【参考方案15】:我刚刚遇到这个问题,是因为检查了运行配置中的跳过测试选项。取消选中并构建,然后运行 testNg,工作。
【讨论】:
【参考方案16】:我遇到了同样的错误 - 在类路径中找不到类:
解决方法:我犯了以下错误:
-
我的课程不在任何包下。所以我创建了一个包,然后在该包下创建了我的类。
我没有提到 xml 文件中的完整路径。前任。 .所以我也更正了。
然后我右键单击xml文件并作为TestNG运行我的程序已成功执行。
【讨论】:
【参考方案17】:我面临同样的问题解决方案是,您需要检查 testng 文件,在这种情况下,您在包下创建的类无法通过 Test NG 找到。执行以下步骤,只需将您的项目转换为 Test NG 并使用新的 testNG 文件覆盖写入/rplace。
在这种情况下再次运行这个 TestNG,它对我的情况有效,
【讨论】:
【参考方案18】:如果您的项目在 Eclipse(Mars) IDE 中打开: 右键单击eclipse中的项目 点击TestNG 点击“转换为TestNG”
这会创建一个新的 testng.xml 文件并提示您覆盖现有的文件(!!!警告,这将删除您之前的 testng.xml !!!)。 点击是。
作为 Maven 测试构建运行。
【讨论】:
【参考方案19】:我尝试了上述所有建议,但对我的情况不起作用。原来我的项目构建路径有错误(找不到依赖的jar之一)。修复该错误后,testng 在我的 Eclipse 中再次运行。
【讨论】:
【参考方案20】:为了避免错误
在类路径中找不到类:(测试用例文件的名称)
您需要将 Runner 类和 Test 类放在一个地方。我的意思是 src 和 test 文件夹。
【讨论】:
【参考方案21】:我遇到了同样的问题。每当我运行测试时,它总是说在类路径中找不到类。我试图修复 testng.xml 文件,清理项目以及答案所说的几乎所有内容,但没有一个奏效。最后,我检查了构建路径中引用的库,发现有 34 个无效库,结果发现我已从获取 jar 文件的路径中重命名了其中一个文件夹。我修好了路径,测试成功了。
因此,在尝试其他方法解决此问题之前,检查引用的 jar 文件中是否有任何错误可能会很有成效。
【讨论】:
【参考方案22】:我在尝试执行我的 Testng.xml 文件时遇到了类似的问题。
要解决此问题,您应该将类文件从默认 pkg 移动到其他 pkg;即创建一个新的 pkg 并将你的类文件放在那里
【讨论】:
【参考方案23】:我也面临同样的问题。我尝试以不同的方式设置类路径,它对我有用:
set classpath="projectpath"\bin;"projectpath"\lib\*
按回车
java org.testng.TestNG testng.xml
再次按Enter
我希望这行得通!
【讨论】:
【参考方案24】:当我使用默认包和一个名为addition的类转换我的项目时, 到 testng.xml。 它被转换为:
<classes>
<class name=".addition"/>
</classes>
并且抛出了无法加载类的错误。 如果我删除 .在添加之前,代码工作正常。 所以要小心使用默认包。
【讨论】:
【参考方案25】:这个问题是由于一些构建错误而出现的。 1. 清理项目 - 如果问题没有解决 2.更新maven项目——如果还没有解决 3.转到构建路径(右键单击项目->属性-> java构建路径) 现在检查库文件。如果您看到错误,则通过在给定位置添加丢失的文件来解决它。
我遇到了同样的问题,经过很多方法后,我找到了解决该问题的第三个解决方案
【讨论】:
【参考方案26】:Eclipse ->右键单击项目 -> 构建路径 em> -> 配置 -> Java 构建路径。
添加库 -> JRE 库。
添加您在系统中使用的最新 Java 库并删除其他旧的 JRE 库并保存。
【讨论】:
【参考方案27】:我在使用 maven
时遇到了同样的问题有效的解决方案是,testNG 文件中的类名与实际类名不同
由于我更改了类名并且 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 -->
【讨论】:
【参考方案28】:右键项目->进入maven->更新项目
这解决了我的问题,没有别的办法
【讨论】:
【参考方案29】:在使用 IntelliJ 时遇到了类似的问题,如果它可能对其他人有帮助,那么为我修复它的方法是更改 Use classpath of module
字段,使其显示为包名。
【讨论】:
【参考方案30】:如果你重命名了你的 testNG 类并且在测试套件 xml 文件中,它没有重命名,你会得到这个错误。我也在 xml 文件中进行了更正,它对我有用。
【讨论】:
以上是关于TestNG 错误在类路径中找不到类的主要内容,如果未能解决你的问题,请参考以下文章
Atlassian Bamboo Logs:[testng] 在类路径中找不到类:com.vaannila.domain.UserTest
Atlassian Bamboo Logs:[testng]在类路径中找不到类:com.vaannila.domain.UserTest