2014-05-09 51 views
0

環境細節
的Mac OS X 10.9
的Oracle JDK 1.7.0_55 64位
Jython的獨立-2.5.3.jar
的JUnit 4.11Jython中使用JUnit - NameError爲assertTrue

我到目前爲止所做的工作
我已將junit jar添加到/ Library/Java/Extensions。
我按如下方式調用Jython java -jar jython-standalone-2.5.3.jar
在Jython解釋器中,我導入了以下import org.junit.Assert,並且此導入成功。

問題
當我試圖用assertTrue,我在解釋一個NameError。這是爲什麼?

據我所知,assertTrue是一種靜態方法。不知道當我嘗試在Jython中使用它時有什麼含義。

其他上下文
我在Jython中使用XMLUnit。能夠在Jython中成功導入org.custommonkey.xmlunit中的Diff類。還能夠使用此類中的方法,並在Diff對象上調用它們。這個方法調用的結果是我試圖傳遞給assertTrue,當它拋出錯誤。

from org.custommonkey.xmlunit import Diff 
import org.junit.Assert 

xml1 = ...some XML string... 
xml2 = ...some XML string... 

myDiff = Diff(xml1, xml2) 
assertTrue(myDiff.similar()) 

希望這些附加信息有助於確定此問題的解決方案。

最新狀態
我把範圍縮小到設置該屬性python.security.respectJavaAccessibility = false,因爲Assert()構造爲protected

仍試圖讓它工作。任何幫助是極大的讚賞。

回答

0

想通了。

junit.jar文件外,還需要將hamcrest-core.jar文件複製到/Library/Java/Extensions

然後我擺脫了jython.jar文件,而是使用jython安裝程序安裝它。

安裝完成後,我更新了安裝文件夾中的registry文件,具體設置此屬性python.security.respectJavaAccessibility = false

現在我能夠看到assertTrue方法,並且不再獲得NameError