在 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-->CleanRun 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。