Ошибка: 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

Я также получил то же исключение:

Я пробовал следующие шаги:

  • В Eclipse > Проект > Очистить. (Исключение осталось)

  • Я запустил еще один проект (успешно протестировал testng.xml)

После запуска другого проекта я запускал проект, в котором я получал исключение, и, к счастью, он работал у меня без ошибок.

Ответ 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. То, что я делал, было -

  1. Запустите проект как "mvn clean"
  2. Выберите файл "testng.xml" и щелкните по нему правой кнопкой мыши, чтобы запустить в качестве комплекта TestNG
  3. Это дало мне ту же ошибку, что и в оригинальном вопросе
  4. Вскоре я понял, что я не скомпилировал проект, и не были созданы необходимые файлы классов, которые TestNG будет использовать впоследствии
  5. Папка "target" будет сгенерирована только после компиляции проекта (Запуск от имени "mvn build")
  6. Если ваш проект скомпилирован, этой проблемы не должно быть.

Ответ 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.

Ниже решение работает для меня:

  1. Импортировать проект с помощью Git.
  2. После импорта IDE в правом нижнем углу появится диалоговое окно с надписью "Импортировать как Gradle", вам нужно выбрать его, но убедитесь, что вы установили JAVA_HOME и GRADLE (Gradle Home или Gradle wrapper оба должны работать) должным образом.
  3. Запустите build.gradle и убедитесь, что все зависимости загружены правильно без каких-либо ошибок.
  4. Теперь перейдите к тестовому сценарию и попробуйте запустить с 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 в этом пакете.