Запуск ANT с SeleneseTestCase приводит к java.lang.NoClassDefFoundError - PullRequest
1 голос
/ 11 ноября 2010

Хорошо, поэтому я пытаюсь выяснить, почему junit не работает во время моей сборки ANT, когда я пытаюсь запустить класс, который расширяет SeleneseTestCase .Я могу запустить тест вручную без проблем.Только когда я пытаюсь собрать и запустить его с помощью ANT, я получаю эту проблему.

Я использую Eclipse на Mac с последней версией:

selenium-java-client-driver-test.jar

selenium-java-client-driver.jar

selenium-server-standalone-2.0a7.jar 

Они указаны в моих глобальных настройках в разделе ANT Global Settings и являютсяимпортировано должным образом в мои SeleneseTestCase классы (я могу запустить testSuite.RegressionTest вручную без проблем, а также сам тестовый класс).Так что где-то мне не хватает связи между ANT и Selenium.

Любая помощь или дальнейшие действия будут приветствоваться.

И если ты когда-нибудь будешь в Сан-Диего (напитки на мне !!! смертельно серьезны :))

Вот мой консольный вывод:

[junit] Testsuite: testSuite.RegressionTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Null Test:  Caused an ERROR
[junit] null
[junit] java.lang.reflect.InvocationTargetException
[junit] Caused by: java.lang.NoClassDefFoundError: com/thoughtworks/selenium/SeleneseTestCase
[junit]     at java.lang.ClassLoader.defineClass1(Native Method)
[junit]     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
[junit]     at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
[junit]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
[junit]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
[junit]     at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
[junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
[junit]     at java.security.AccessController.doPrivileged(Native Method)
[junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit]     at testSuite.RegressionTest.suite(Unknown Source)
[junit] Caused by: java.lang.ClassNotFoundException: com.thoughtworks.selenium.SeleneseTestCase
[junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[junit]     at java.security.AccessController.doPrivileged(Native Method)
[junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit] Test testSuite.RegressionTest FAILED

ОБНОВЛЕНИЕ: Вы видите, что загружаются файлы Selenium .jar ...

[javac] [путь поиска для файлов классов: / System / Library / Java /JavaVirtualMachines / 1.6.0.jdk / Contents / Classes / jsfd.jar, / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Classes / classes.jar,

... [УДАЛЕНО НЕПРАВИЛЬНО ЗАГРУЗЕННЫЕ КЛАССЫ] ...

/ Applications / eclipse / plugins / junit-4.8.2.jar, / Applications / eclipse / plugins / selenium-java-client-водитель-tests.jar, / Applications / затмение / плагины / селен Java-клиент-driver.jar, / Applications / затмение / плагины / селен-сервер автономный-2.0a7.jar ]

... [УДАЛЕННЫЕ НЕЗАМЕЩЕННЫЕ ЗАГРУЗЕННЫЕ КЛАССЫ] ...

1 Ответ

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

Не похоже, что это селен, а муравей, который вызывает у вас головную боль. Какую версию муравья вы используете?

Это определенно звучит как проблема с classpath, которая может возникнуть из муравья. Я потратил много потраченного впустую часа, пытаясь выяснить, почему мои сборки не работали, только чтобы выяснить, что при запуске моей задачи загружалась какая-то другая переменная classpath. У меня даже было несчастье загрузить старую версию ant (скрытую глубоко внутри Weblogic), когда я явно вызывал более новую версию. Это было 4 потраченных впустую часа моей жизни ...

Мое предложение состоит в том, чтобы создать переменную classpath в вашем скрипте ant, которая явно называет jar-файлы, которые вы хотите использовать, и запустить задачу ant с помощью '-v' (для подробного описания), чтобы увидеть, что действительно загружается во время выполнения.

Старая поговорка гласит: «если пахнет как утка, ходит как утка и гудит как утка, значит, у вас, вероятно, утка»

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