Ошибка при запуске комплекта TestNG из Ant: «Не удается найти класс в classpath» - PullRequest
1 голос
/ 05 ноября 2010

Я создал набор тестов TestNG, которые я пытаюсь запустить из задачи Ant с помощью Selenium Grid. Я попытался установить путь к классам в Ant, включая jar TestNG и некоторые другие. другие необходимые банки (тесты Selenium). Это немного изменено по сравнению с демонстрацией Selenium Grid, чтобы отразить местоположения в моей среде.

<path id="runtime.classpath">
   <pathelement path="${java.class.path}/" />
    <fileset dir="C:\Tools\selenium-grid-1.0.8\vendor">
        <include name="selenium-java-client-driver-${selenium.version}.jar"/>
       <include name="testng-5.7-jdk15.jar"/>
        <include name="commons-logging-1.0.4.jar"/>
    </fileset>
    <fileset dir="${test.location}">
        <include name="**/*.java" />
    </fileset>
    <pathelement location="${grid.location}/lib/selenium-grid-tools-standalone-${grid.version}.jar" />
</path>

TestNG запускается, но сразу завершается с ошибкой:

     [java] ===============================================
     [java] Selenium Tests
     [java] Total tests run: 0, Failures: 0, Skips: 0
     [java] ===============================================
     [java]
     [java] [ERROR]:
     [java] Cannot find class in classpath: TestName

test.location в данный момент указывает на папку src для тестов. Изменение test.location на каталог bin и изменение атрибута name на **/*.class не имеет значения; ошибка та же.

Я могу успешно запустить этот набор из плагина Eclipse, поэтому я знаю, что файл набора тестов в порядке. Я работаю над тем, чтобы запустить его в Ant и убедиться, что Selenium Grid действительно правильно распределяет тесты по пультам Selenium Remote Controls.

Ответы [ 2 ]

1 голос
/ 05 ноября 2010

Вместо того, чтобы указывать путь к классам для указания на отдельные файлы классов, установите его для указания на родительский каталог.

Вместо

<fileset dir="${test.location}">
    <include name="**/*.java" />
</fileset>

попробовать

<pathelement path="${test.location}" />

(хотя вам может потребоваться изменить это, чтобы указывать на каталог bin, а не на каталог src).

0 голосов
/ 04 декабря 2011

я был пойман с одной и той же ошибкой более чем в одном экземпляре.Исследуя Eclipse для решения, я наткнулся на окно Маркеры (Главное меню -> Windows -> Показать представление -> Маркеры), в котором говорилось, что в моем проекте (proj1, который я запустил с помощью Testng) отсутствует необходимая библиотека, как и было.

Я использовал внешний проект Java (ext_proj), прикрепив его в качестве внешнего файла JAR к пути сборки этого проекта, proj1 (указав его на ext_proj.jar, который находится в каталоге ext_proj).Я случайно очистил (ext_proj), который уничтожил в нем ext_proj.jar.Я не мог видеть точную причину этой вышеупомянутой ошибки в Консоли, но только в окне Маркеров, как я указал выше.

Как только я сделал этот ext_proj.jar доступным в proj1, эта ошибка исчезла.

...