2010-10-26 75 views
3

我試圖在現有的RFT框架內創建Junit測試框架。 JUnit的設置工作正常,我們不必實例化任何框架類。每當我們嘗試訪問框架類時,它都拋出下面的異常。我確實在網上尋找類似的問題,但無法獲得解決方案。如果任何機構遇到類似問題,請提出解決方案。 RFT版本是8.1,JUnit版本是4RFT和JUnit相關問題

java.lang.NoClassDefFoundError: com.ibm.rational.test.lt.arm.IArmable 
at java.lang.ClassLoader.defineClass(ClassLoader.java:265) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:521) 
at java.net.URLClassLoader.access$300(URLClassLoader.java:66) 
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:985) 

回答

0

這看起來像是類路徑錯誤。如果您從ANT,Maven或某個類似的構建工具調用JUnit,請確保在類路徑中具有相應的JAR文件。請記住,一些JARS反過來有自己的依賴關係。除非所有這些依賴關係都在類路徑中,否則您將得到java.lang.NoClassDefFoundError。

如果您嘗試從GUI客戶端運行,可能會有點困難。實質上,你必須將所有的依賴添加到jvm的-classpath選項中。

+0

我有同樣的問題;類路徑應該沒問題,因爲我可以運行實際的RFT測試。是否有單獨的類路徑作爲JUnit測試運行? – Yamikuronue 2012-03-26 14:38:30

+0

除非您編譯的RFT與您正在運行的RFT不同,否則NoClassDefFoundError是類路徑問題的症狀。不明確RFT,但知道與JUnit的常見問題,它取決於如何調用JUnit測試。沒有像.NET中的DLL依賴關係那樣的自動Jar加載。如果您使用GUI加載器運行JUnit,則必須確保類路徑也包含所有依賴項。等等 – 2012-03-26 16:01:49

+0

它看起來像RFT只在jUnit上下文中使用某個jar,而不是在正常的腳本操作中。詳情請參閱我的回答 – Yamikuronue 2012-03-26 18:00:37

1

我想通了:

你必須罐子「com.ibm.rational.test.lt.rftarm_8.2.1.v20120105_1832.jar」添加到您的Java構建路徑。 Mine位於C:/ Program Files/IBM/IMShared/plugins /中。它隨RFT一起提供,但默認情況下似乎尚未包含在Build Path中。