TestNG ERROR Не удается найти класс в classpath - PullRequest
24 голосов
/ 29 сентября 2011

Я пытаюсь запустить testng через командную строку, и у меня есть следующие вещи в classpath:

  • testng jar, файл скомпилированного файла теста и другие необходимые файлы.
  • testng.xml указывает на соответствующий класс в иерархии.

Testng не запускается, вместо этого он выдает:

[TestNG] [ERROR]  Cannot find class in classpath: (name of testcase file)

Я сталкивался с той же проблемой раньше и только что добавил.решил проблему.Но на этот раз, похоже, это не решило проблему.Есть обходные пути?Заранее спасибо.

Ответы [ 28 ]

36 голосов
/ 29 августа 2012

У меня только что была эта проблема, и я уверен, что это ошибка в плагине TestNG для eclipse, так как я смог нормально выполнить свои тесты из командной строки.

Исправление, которое, кажется, работает для меня и других, состоит в том, чтобы просто очистить ваш проект (ProjectClean).Один человек должен был переустановить весь плагин.

16 голосов
/ 28 сентября 2012

Если имя вашего пакета - FabFurnishPackage, а имя вашего класса - регистрация, тогда код в xml должен быть

<classes>
<class name="FabFurnishPackage.registration">
</classes>

[TestNG] [ОШИБКА] Не удается найти класс в classpath: регистрация проблема исправлена ​​...

8 голосов
/ 26 февраля 2015

Просто выполните Eclipse> Project> Clean и затем снова запустите тестовые случаи.Он должен работать.

В фоновом режиме он будет вызывать mvn eclipse: clean в каталоге вашего проекта, который удалит ваши файлы .project и .classpath, и вы также можете выполнить mvn eclipse: eclipse -это восстановит ваши файлы .project и .classpath.Таким образом добавляя нужный класс в classpath.

6 голосов
/ 17 мая 2016

Я столкнулся с той же проблемой, и я попытался сделать следующее:

  1. Очистить проект (щелкните правой кнопкой мыши на pom.xml и очистить)
  2. И обновить проект maven(Проект> Maven> Обновить проект Maven)

Это решило проблему.

4 голосов
/ 24 ноября 2016

добавить в пом:

        <build>
            <sourceDirectory>${basedir}/src</sourceDirectory>
            <testSourceDirectory>${basedir}/test</testSourceDirectory>
             (...)
            <plugins>
                (...)
            </plugins>
        </build>
4 голосов
/ 26 марта 2013

Перед запуском команды для файла testng.xml из командной строки, проверьте следующее, если вы их пропустили

  1. В командной строке убедитесь, что вы переходите в папку, в которую вы поместили файл testng.xml.
  2. после перехода к этому, set CLASSPATH и включите местоположение файла jar testng, местоположение файла jar сервера selenium (если вы работаете с selenium webdriver), местоположение папки bin вашего проекта, которая содержит все файлы .class вашего проект.
    например, set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
  3. Теперь запустите команду java org.testng.TestNG testng.xml.

Я попал в ту же ситуацию, но вышеперечисленные вещи сработали для меня.

2 голосов
/ 26 декабря 2013

убедитесь, что ваш suite.xml не должен иметь расширение .java

например:

<test name="Test C1">
    <classes>
        <class name="com.taxi.suiteC.TestCase_C1" ></class>  
    </classes>
</test>
1 голос
/ 03 июля 2019

Если ни один из приведенных выше ответов не работает, вы можете запустить тест в IDE, получить путь к классу и использовать его в своей команде.Пример: если вы используете Intellij IDEA, вы можете найти его в верхней части консоли (скриншот ниже).Intellij Console

Нажатие на выделенную часть раскрывает и отображает полный путь к классу.

вам необходимо удалить ссылки на jar-файлы внутри папки: JetBrains \ IntelliJ IDEACommunity Edition VERSION

java -cp "path_copied" org.testng.TestNG testng.xml

Если проект является проектом Maven, вы можете добавить плагин maven surefire и указать путь к файлу XML комплекта testng, перейти к проектукаталога и выполните команду: mvn clean install test

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>config/testrun_config.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
1 голос
/ 26 февраля 2018

Пожалуйста, убедитесь, что вы указали свой класс / пакет в файле TestNG.xml.

<test name="test1" preserve-order="false">
    <classes>
        <class name="ABC"/>
    </classes>
</test>

0 голосов
/ 27 декабря 2018

Я получил ту же проблему при использовании maven

Решение, которое сработало, имя класса в файле testNG отличалось от фактического имени класса

Поскольку я изменил имя класса, а testng файл не был обновлен.

Поэтому убедитесь, что className в файле testNG должно совпадать с фактическим className

RestAssuredTestбыло ошибочно написано как RestAssuredest в тесте NG

Одна из причин этой проблемы

<?xml version="1.0" encoding="UTF-8"?>

 <suite name="Suite">
   <test name="Test">
<classes>
  <class name="com.mycompany.app.AppTest"/>
  <class name="com.mycompany.app.RestAssuredTest"/>
 <class name="com.mycompany.app.appiumTests"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
...