XMLRunner - " unicode对象没有属性' write'"在构建

时间:2015-09-15 15:35:47

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

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

'unicode' object has no attribute 'write'

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

2 个答案:

答案 0 :(得分:1)

我似乎通过以下方式实现了这一目标:

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

  

建立失败 - ' unicode'对象没有属性'写'

然后我卸载了^.*[^\:]*\d\d\:\d\d\:\d\d[^\:]*?\s\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s(?P<service>\w+),(?P<severity>\w+)(.+?):\s(?P<mac>\S+)\s.(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(.+?) (?P<action>.+)[\(:,\-].(?P<message>[\w\s]+) &amp; xmlrunner使用unittest-xml-reporting

然后我使用pip重新安装pyb install_dependencies

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

  

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

这是我当前的pyb输出:

  

pip(7.1.2)

     

PyBuilder(0.11.1)

     

setuptools(18.2)

     

六(1.9.0)

     

tblib(1.1.0)

     

unittest-xml-reporting(1.12.0)

     

轮(0.24.0)

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

  

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

答案 1 :(得分:0)

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

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