好的,所以我想弄清楚爲什麼junit在我的ANT編譯期間失敗,當我嘗試運行一個擴展了SeleneseTestCase的類時。我可以在沒有問題的情況下手動運行測試。只有當我嘗試使用ANT進行構建和運行時,我纔會遇到這個問題。使用SeleneseTestCase運行ANT會導致java.lang.NoClassDefFoundError
我使用Eclipse在Mac上使用的最新版本:
selenium-java-client-driver-test.jar
selenium-java-client-driver.jar
selenium-server-standalone-2.0a7.jar
這些在我的全局設置中引用的ANT全局設置下,並在我的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, /系統/圖書館/的Java/JavaVirtualMachines/1.6.0.jdk /內容/班/ classes.jar,
...... [REMOVED IRRELEVANT加載的類] ...
/Applications/eclipse/plugins/junit-4.8 .2.jar,/應用/日蝕/插件/硒 - Java的客戶機驅動器-tests.jar,/應用/日蝕/插件/硒 - Java的客戶機 - driver.jar,/應用/日蝕/插件/硒服務器獨立-2.0a7.jar]
...... [REMOVED IRRELEVANT加載的類] ...
有運行ANT與冗長/調試,你會看到它真正加載了什麼CLASSPATH。 – 2010-11-11 16:26:19
@ karianna我更新了它加載路徑到類的部分的問題。從這個輸出中,我假設與硒相關的.jar文件正在正確加載。 – 2010-11-11 17:00:58