【问题标题】:XMLRunner - "unicode object has no attribute 'write'" when buildingXMLRunner - 构建时“unicode对象没有属性'write'”
【发布时间】:2015-09-15 15:35:46
【问题描述】:

我正在使用 Pybuilder 构建一个项目。我将它克隆到一台新计算机上,当我运行pyb 时,我的单元测试抱怨没有名为xmlrunner 的模块。所以在我做了pip install xmlrunner 之后,我从 Pybuilder 收到了一个构建错误:

'unicode' object has no attribute 'write'.

如果我从 unittest 搜索路径中删除我的单元测试,则构建成功完成。当我直接运行单元测试时,它们成功完成。所以我认为 XMLRunner 以某种方式失败了。 Pip 安装了 XMLRunner 1.7.7 版。提前感谢您的帮助。

【问题讨论】:

    标签: python unit-testing unicode python-unittest pybuilder


    【解决方案1】:

    我似乎通过执行以下操作来完成这项工作:

    首先我遇到了和你一样的错误:

    构建失败 - 'unicode' 对象没有属性 'write'

    然后我使用pip卸载了xmlrunnerunittest-xml-reporting

    然后我使用pyb install_dependencies 重新安装unittest-xml-reporting

    然后当我使用pyb 时,我的单元测试再次开始运行:

    单元测试中有 1 个错误和 0 个失败

    这是我当前的pip list 输出:

    点 (7.1.2)

    PyBuilder (0.11.1)

    安装工具 (18.2)

    六(1.9.0)

    tblib (1.1.0)

    unittest-xml-reporting (1.12.0)

    轮子 (0.24.0)

    如果您使用的是 virtualenv,当您在 virtualenv 环境之外安装 pybuilder 时也会出现此错误:

    例如,您的 virtualenv 没有安装 pybuilder,但您仍然可以从命令行运行 pyb。也需要删除这个pybuilder(我在 OSX 上,所以它是它附带的默认 python)

    【讨论】:

      【解决方案2】:

      当我将 PyBuilder 从 0.11.0 降级到 0.10.63 时,该问题已解决。在他们针对 0.10.63 的发行说明(此处:http://pybuilder.github.io/releasenotes/)中,他们提到“修复了 0.10.62 中引入的回归,其中由 python.unittest 插件生成的单元测试报告将始终为空。”

      出于某种原因,这完全为我解决了问题。

      【讨论】:

        猜你喜欢
        • 2017-11-19
        • 2019-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-10
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多