在Jython中使用JUnit - assertTrue的NameError

时间:2014-05-09 03:24:26

标签: junit jython nameerror

环境详情
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

仍在努力让它发挥作用。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

想出来。

junit.jar文件外,还需要将hamcrest-core.jar文件复制到/Library/Java/Extensions

然后我删除了jython.jar文件,而是使用jython安装程序安装它。

安装完成后,我更新了安装文件夹中的registry文件,专门设置了此属性python.security.respectJavaAccessibility = false

现在,我可以看到assertTrue方法,而不再获得NameError