在 class 路径中找不到 class:即使在 testng.xml 中提到 class 的完整层次结构也会抛出异常
Cannot find class in classpath: exception is thrown even with complete hierarchy mentioned for class in testng.xml
我正在尝试执行一个简单的 TestNG 测试方法,但是,我遇到了异常:
cannot find class in calsspath
我在eclipse中试过Project->Clean
,但是,它不起作用,另外,请注意我在testng.xml
中给出了完整的测试class层次结构,请建议问题可能出在哪里。
我试过了Project-->Clean
、Run as-->mvn clean build
{
TestNG.xml have below code
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="TestClasses" >
<classes>
<class name="com.extentreports.test.ExtentReports.TestClass1" />
</classes>
</test>
</suite>
please see that, i have given complete path for my test class, still issue not solved
POM.xml have below entries
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<suiteXmlFiles> testng.xml </suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>4.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
TestClass1.java have below code
@Test
public void test001(){
System.out.println("Test001");
}
}
Eclipse 控制台中的错误跟踪:
{
这是在 eclipse 控制台 {org.testng.TestNGException 中发现的异常跟踪:在 class 路径中找不到 class:com.extentreports.test.ExtentReports.TestClass1 在 org.testng.xml.XmlClass.loadClass(XmlClass.java :77) 在 org.testng.xml.XmlClass.init(XmlClass.java:69) 在 org.testng.xml.XmlClass.(XmlClass.java:55) 在 org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:575) 在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)}
}
我刚刚发现实际问题,这是因为 Maven 将首先编译我们的 .java 文件并创建 .class 文件,并将它们放在 'target' 文件夹中,maven然后使用这些编译好的 classes 来执行。由于某些未知原因,编译没有发生,目标文件夹为空。现在,我发现了问题,我尝试了 maven 的命令,如 build、generate-source 来编译它[不确定这些是否正确 commands.but,只是试了一下],没有任何效果,但是,当我运行 我的项目 [右键单击项目和 select 运行 作为 ] 和 运行 我的项目作为 maven 测试,这已经编译了我的 .java 文件并生成了目标文件夹中的文件。现在,如果我 运行 我的测试 class 作为单独的 testng 或来自 testng.xml 文件,代码将成功执行。
这适用于任何版本的 testng,例如 6.11 ...... 6.14.2 和 6.14.3。
我正在尝试执行一个简单的 TestNG 测试方法,但是,我遇到了异常:
cannot find class in calsspath
我在eclipse中试过Project->Clean
,但是,它不起作用,另外,请注意我在testng.xml
中给出了完整的测试class层次结构,请建议问题可能出在哪里。
我试过了Project-->Clean
、Run as-->mvn clean build
{
TestNG.xml have below code
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="TestClasses" >
<classes>
<class name="com.extentreports.test.ExtentReports.TestClass1" />
</classes>
</test>
</suite>
please see that, i have given complete path for my test class, still issue not solved
POM.xml have below entries
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<suiteXmlFiles> testng.xml </suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>4.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
TestClass1.java have below code
@Test
public void test001(){
System.out.println("Test001");
}
}
Eclipse 控制台中的错误跟踪: { 这是在 eclipse 控制台 {org.testng.TestNGException 中发现的异常跟踪:在 class 路径中找不到 class:com.extentreports.test.ExtentReports.TestClass1 在 org.testng.xml.XmlClass.loadClass(XmlClass.java :77) 在 org.testng.xml.XmlClass.init(XmlClass.java:69) 在 org.testng.xml.XmlClass.(XmlClass.java:55) 在 org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:575) 在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)}
}
我刚刚发现实际问题,这是因为 Maven 将首先编译我们的 .java 文件并创建 .class 文件,并将它们放在 'target' 文件夹中,maven然后使用这些编译好的 classes 来执行。由于某些未知原因,编译没有发生,目标文件夹为空。现在,我发现了问题,我尝试了 maven 的命令,如 build、generate-source 来编译它[不确定这些是否正确 commands.but,只是试了一下],没有任何效果,但是,当我运行 我的项目 [右键单击项目和 select 运行 作为 ] 和 运行 我的项目作为 maven 测试,这已经编译了我的 .java 文件并生成了目标文件夹中的文件。现在,如果我 运行 我的测试 class 作为单独的 testng 或来自 testng.xml 文件,代码将成功执行。
这适用于任何版本的 testng,例如 6.11 ...... 6.14.2 和 6.14.3。