Не удается найти класс в пути к классам: возникает исключение даже при полной иерархии, указанной для класса в testng.xml

Я пытаюсь выполнить простой тестовый метод TestNG, но получаю исключение:

cannot find class in calsspath

Я пробовал Project->Clean в eclipse, но он не работает, также обратите внимание, что я дал полную иерархию для тестового класса в testng.xml, пожалуйста, предложите, где может быть проблема.

Я пробовал 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: не удается найти класс в пути к классам: 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)}

}


person Rajaji    schedule 29.01.2019    source источник
comment
Пожалуйста, добавьте полное и точное сообщение об ошибке к вашему вопросу   -  person Nico Haase    schedule 29.01.2019
comment
Пожалуйста, добавьте это сообщение в вопрос, а не в раздел комментариев.   -  person Nico Haase    schedule 29.01.2019


Ответы (1)


Я только что обнаружил настоящую проблему, это происходит потому, что Maven сначала скомпилирует наши файлы .java и создаст файл .class и поместит их в «целевую» папку, а затем maven использует эти скомпилированные классы для выполнения. По какой-то неизвестной причине компиляция не происходит и целевая папка пуста. Теперь, когда я нашел проблему, я попробовал команды maven, такие как build, generate-source, чтобы скомпилировать его [не уверен, что это правильные команды. но только что попробовал], ничего не сработало, но когда я запускаю свой проект [щелкните правой кнопкой мыши проект и выберите «Запустить как»] и запустите мой проект как тест maven, это скомпилирует мои файлы .java и сгенерирует файлы в целевой папке. Теперь, если я запускаю свой тестовый класс либо как отдельный testng, либо из файла testng.xml, код успешно выполняется.

Это работает для любой версии testng, например 6.11 ...... 6.14.2 и 6.14.3.

person Rajaji    schedule 29.01.2019