【问题标题】:Using JUnit in Jython - NameError for assertTrue在 Jython 中使用 JUnit - assertTrue 的 NameError
【发布时间】:2014-05-09 13:30:03
【问题描述】:

环境详情
Mac OS X 10.9
Oracle JDK 1.7.0_55 64 位
jython-standalone-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 中的 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

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

【问题讨论】:

    标签: junit jython nameerror


    【解决方案1】:

    想通了。

    除了junit.jar文件,hamcrest-core.jar文件也需要复制到/Library/Java/Extensions

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

    安装完成后,我更新了安装文件夹中的registry文件,具体设置了python.security.respectJavaAccessibility = false这个属性。

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

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      相关资源
      最近更新 更多