Ошибка: org.testng.TestNGException: не удается найти класс в classpath: EmpClass
Когда я пытаюсь запустить набор тестов, я получаю это исключение. Мы используем проект maven здесь, и я закончил с обновлением, очисткой, переустановкой testNG, а затем импортировал проекты maven, но затем также получаю то же исключение. Пожалуйста, предложите любые способы, которые здесь отсутствуют.
Консоль ошибок:
org.testng.TestNGException:
Cannot find class in classpath: EmpClass
at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
at org.testng.xml.XmlClass.init(XmlClass.java:73)
at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:543)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1350)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2778)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
at org.testng.xml.XMLParser.parse(XMLParser.java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
at org.testng.xml.Parser.parse(Parser.java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Ответы
Ответ 1
Я также получил то же исключение:
Я пробовал следующие шаги:
После запуска другого проекта я запускал проект, в котором я получал исключение, и, к счастью, он работал у меня без ошибок.
Ответ 2
Вы должны отредактировать свои тестовые файлы Runner xml.
См. Этот пример:
<test name="Employees Test">
<classes>
<class name="packagename.classname">
</class>
</classes>
</test>
В строке <class name="packagename.classname">
вы должны ввести имя тестового пакета, а затем имя класса, который вы хотите запустить.
Спасибо и желаю вам всего наилучшего.
Ответ 3
Я столкнулся с аналогичной проблемой при импорте maven с проектом testng. Это было решено путем преобразования в проект TestNg с помощью
щелкните правой кнопкой мыши по проекту eclipse > TestNG > Преобразовать в TestNG
и заменив существующий файл testng.xml
на новый. Очистите и обновите проект maven с помощью mvn install
Примечание. Сделайте резервную копию своего testng.xml
Ответ 4
Перейдите к
Project > Путь сборки > Настроить путь сборки > Библиотеки > Удалить библиотеки ошибок
После обновления проекта и снова запустите программу.
Ответ 5
Проект → Clean and Maven → Проект обновления работал у меня
Ответ 6
Мои 2 цента на проблему: у меня была та же проблема, в то время как часть моего пути была на кириллице. Поэтому проверьте путь к вашему проекту для специальных символов. Как только я удалил это, проблема была исправлена.
Ответ 7
Я также столкнулся с той же проблемой с TestNG версии 6.14.2
Тем не менее, это произошло из-за глупой ошибки с моей стороны, и нет никаких проблем с maven, testng или eclipse. То, что я делал, было -
- Запустите проект как "mvn clean"
- Выберите файл "testng.xml" и щелкните по нему правой кнопкой мыши, чтобы запустить в качестве комплекта TestNG
- Это дало мне ту же ошибку, что и в оригинальном вопросе
- Вскоре я понял, что я не скомпилировал проект, и не были созданы необходимые файлы классов, которые TestNG будет использовать впоследствии
- Папка "target" будет сгенерирована только после компиляции проекта (Запуск от имени "mvn build")
- Если ваш проект скомпилирован, этой проблемы не должно быть.
Ответ 8
У меня была та же проблема, когда я использовал зависимость от селена 3.11.xx, однако моя проблема была решена, когда я использовал зависимость от селена 3.4.x.
Ответ 9
У меня была аналогичная проблема, и у проекта были некоторые ошибки сборки.
Я сделал sudo -R 777 для проекта, а затем я очистил свой проект.
После этого он работал нормально.
Надеюсь, что это поможет.
Ответ 10
У меня была такая же ошибка при попытке выполнить мои тесты в проекте JSF.
Я использую Eclipse IDE (кеплер). Итак, я сделал "project > clean", а затем снова запускал тесты того же проекта.
Это сработало!
Ответ 11
Примечание. Вы должны указать имя класса вместе с пакетами, как показано ниже.
<suite name="testNGLearning">
<test name="simpleTest">
<classes>
<class name="testngTests.TestNGSimpleTest" />
<class name="testngTests.TestMessageUtil" />
</classes>
</test>
</suite>
Ответ 12
Снова повторить работу IDE. Решение довольно забавное - и даже переустановка, и удаление IDE не исправляет его на окнах. То, что вам нужно сделать в этом случае, - это перейти к конфигурациям запуска testNG - и удалить их все.
Это относится к ошибке класса TestNG XML в ОС Windows. Я использую набор инструментов spring 3.6.4.
Убедитесь, что вы удалите все конфигурации, убедитесь, что проект может быть создан, и если нет никаких проблем, тест должен выполняться прямо сейчас.
Отношения
-Антони Торие
Ответ 13
В файле testng.xml удалите "." из имени класса тега "", если вы не используете пакеты.
Ответ 14
укажите имя пакета с классом. Он удалит ваше имя. Я также получил ту же проблему, но добавив имя пакета с классом исправил эту проблему.
Ответ 15
Для меня проблема была очень странной.
У меня есть файл testng.xml в корне моего проекта Eclipse. Когда я изменил файл через Eclipse, он не менял файл testng.xml в моем каталоге.
Оказывается, это сделало копию папки в рабочем пространстве eclipse.
Надеюсь, что это поможет кому-то из
Ответ 16
На мой взгляд, если src имеет test/java/folders, то в пути построения пути должно быть похоже на целевые/тестовые классы.
Если src имеет основную/java/папки, то в пути построения путь должен быть как target/classes.
Ответ 17
Я столкнулся с тем же вопросом, что и сегодня. ** установка класса-пути снова в eclipse ** решила проблему.
Ответ 18
У меня не было проблем с этим до недавнего времени.
Теперь мне пришлось переместить тестовый файл xml-пакета в корень проекта, который я тестировал.
Возможно, существует параметр, указывающий на классы, которые я тестирую, но я его не нашел.
Ответ 19
Для меня проблема была в том, что я исключил тест из компиляции в POM. Мой pom.xml выглядел так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<testExcludes>
<exclude>com/mycompany/app/AppTest.java</exclude>
</testExcludes>
</configuration>
</plugin>
После удаления <exclude>
я снова смог запустить тесты в AppTest.java
.
Ответ 20
В моем случае я импортировал проект maven как существующий проект по умолчанию в eclipse. После этого я импортировал как проект maven. Это сработало для меня.
Ответ 21
Эту проблему можно решить, добавив пакет TestNG.class в пакет OnlineStore, как показано ниже.
- Шаг 1: Путь сборки > Настроить путь сборки > Путь сборки Java > Выбрать
Вкладка "Проект"
- Шаг 2: Нажмите кнопку "Добавить" и выберите проект, содержащий
Источник TestNG.
- Шаг 3 выберите TestNG.xml запустите как "TestNG Suite"
Ответ 22
У меня была такая же проблема, когда я импортировал свой проект с одного компьютера на другой в IntelliJ IDEA.
Ниже решение работает для меня:
- Импортировать проект с помощью Git.
- После импорта IDE в правом нижнем углу появится диалоговое окно с надписью "Импортировать как Gradle", вам нужно выбрать его, но убедитесь, что вы установили JAVA_HOME и GRADLE (Gradle Home или Gradle wrapper оба должны работать) должным образом.
- Запустите build.gradle и убедитесь, что все зависимости загружены правильно без каких-либо ошибок.
- Теперь перейдите к тестовому сценарию и попробуйте запустить с TestNG или JUnit. Если вы выполнили вышеупомянутые 3 шага правильно, вы сможете запустить тестовый набор.
Ответ 23
После того, как я попробовал все, что нашел по этому вопросу, в Eclipse,
Я выбрал свой проект → щелкните правой кнопкой мыши → Выполнить как → Maven generate-sources
![enter image description here]()
Затем я повторно запустил свой проект TestNG, и он работал отлично без каких-либо проблем. Надеюсь, это поможет :)
Ответ 24
Для меня это было то, что я добавил флажок Пропустить тесты/флаг в сборке проекта Maven
Поэтому тестовые классы не были скомпилированы и не были найдены TestNG
Ответ 25
У меня тоже была эта проблема. Я использую IntelliJ IDEA. Я использовал src/main/java
для конфигурационных файлов и src/test/java
для тестовых файлов.
Из-за этого testNG не смог найти путь к классу. Чтобы избежать этой ошибки, необходимо переместить все файлы из src/main/java
в src/test/java
или наоборот.
Ответ 26
Сначала вы должны создать пакет, а затем создать новый класс TestNG в этом пакете.