在类路径中找不到类:即使在testng.xml中为类提到了完整的层次结构,也会引发异常

时间:2019-01-29 08:31:29

标签: testng testng-eclipse testng.xml

我正在尝试执行一种简单的TestNG测试方法,但是,我遇到了异常:

cannot find class in calsspath

我在eclipse中尝试过Project->Clean,但是,它也不起作用,请注意,我已经为testng.xml中的测试类给出了完整的层次结构,请指出问题可能出在哪里。

我尝试过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 console {org.testng.TestNGException:中找不到类的异常跟踪:在org.org的org.testng.xml.XmlClass.loadClass(XmlClass.java:77)的类路径:com.extentreports.test.ExtentReports.TestClass1中找不到类.com的org.testng.xml.XmlClass。(XmlClass.java:55)的.testng.xml.XmlClass.init(XmlClass.java:69)com的org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:575)的。 .sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)}

}

1 个答案:

答案 0 :(得分:0)

我刚刚发现了实际的问题,这是因为Maven首先编译我们的.java文件并创建.class文件,然后将它们放置在“ target”文件夹中,然后maven使用这些编译后的类来执行。由于某些未知的原因,不会进行编译并且目标文件夹为空。现在,我发现了问题,我尝试了maven的命令,例如build,generate-source来编译它(不确定这些命令是否正确。但是,只是尝试了一下),没有任何效果,但是,当我运行我的命令时,项目[右键单击项目并选择运行方式]并以maven test运行我的项目,这已编译了我的.java文件并在目标文件夹中生成了文件。现在,如果我将测试类作为单独的testng或从testng.xml文件运行,则代码已成功执行。

这也适用于任何版本的testng,例如6.11 ...... 6.14.2和6.14.3。