【问题标题】: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卸载了xmlrunner和unittest-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)