环境详情
Mac OS X 10.9
Oracle JDK 1.7.0_55 64位
Jython的独立-2.5.3.jar
junit-4.11
到目前为止我做了什么
我已将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中从Diff
成功导入org.custommonkey.xmlunit
类。也可以使用此类中的方法,并在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 :(得分:0)
想出来。
除junit.jar
文件外,还需要将hamcrest-core.jar
文件复制到/Library/Java/Extensions
。
然后我删除了jython.jar
文件,而是使用jython安装程序安装它。
安装完成后,我更新了安装文件夹中的registry
文件,专门设置了此属性python.security.respectJavaAccessibility = false
。
现在,我可以看到assertTrue
方法,而不再获得NameError
。