Не удается найти класс в classpath: исключение выдается даже при полной иерархии, упомянутой для класса в testng.xml - PullRequest
0 голосов
/ 29 января 2019

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

cannot find class in calsspath

Я пробовал Project->Clean в затмении, но он не работает, также, пожалуйста,обратите внимание, что я дал полную иерархию для тестового класса в 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: не удается найтикласс в classpath: com.extentreports.test.ExtentReports.TestClass1 в org.testng.xml.XmlClass.loadClass (XmlClass.java:77) в org.testng.xml.XmlClass.init (XmlClass.java:69) в орг.testng.xml.XmlClass. (XmlClass.java:55) в org.testng.xml.TestNGContentHandler.startElement (TestNGContentHandler.java:575) в com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.art.java: 509)}

}

1 Ответ

0 голосов
/ 29 января 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...