Нос Python выдает ошибку TypeError с покрытием

Когда я использую носовые тесты 1.2.1 с покрытием, возникает следующая ошибка.

/usr/lib/python2.6/site-packages/tw/core/view.py:223: DeprecationWarning: object.__new__() takes no parameters
obj = object.__new__(cls, *args, **kw)
Traceback (most recent call last):
File "/usr/bin/nosetests", line 9, in <module>
  load_entry_point('nose==1.2.1', 'console_scripts', 'nosetests')()
File "/usr/lib/python2.6/site-packages/nose/core.py", line 118, in __init__
**extra_args)
File "/usr/lib64/python2.6/unittest.py", line 815, in __init__
  self.parseArgs(argv)
File "/usr/lib/python2.6/site-packages/nose/core.py", line 135, in parseArgs
  self.config.configure(argv, doc=self.usage())
File "/usr/lib/python2.6/site-packages/nose/config.py", line 338, in configure
  self.plugins.configure(options, self)
File "/usr/lib/python2.6/site-packages/nose/plugins/manager.py", line 284, in configure
  cfg(options, config)
File "/usr/lib/python2.6/site-packages/nose/plugins/manager.py", line 99, in __call__
  return self.call(*arg, **kw)
File "/usr/lib/python2.6/site-packages/nose/plugins/manager.py", line 167, in simple
  result = meth(*arg, **kw)
File "/usr/lib/python2.6/site-packages/nose/plugins/cover.py", line 137, in configure
  branch=self.coverBranches, data_suffix=None)
TypeError: __init__() got an unexpected keyword argument 'branch'

Любая помощь? Спасибо


person vinay polisetti    schedule 19.11.2012    source источник
comment
Кажется, это проблема с частью покрытия. Какая у вас версия coverage? Если он слишком старый, он может не поддерживать покрытие ветвей, таким образом отклоняя аргумент branch.   -  person madjar    schedule 19.11.2012


Ответы (1)


У вас последняя версия носа, но старая версия покрытия, и нос использует функции, недавно добавленные в покрытие.

Поддержка покрытия ветвей была добавлена ​​в coverage 3.2, и у вас есть версия 3.0.1 (см. https://crate.io/packages/coverage/).

Вам необходимо обновить покрытие.

  • Если вы установили его вручную, pip install -U coverage должно помочь.
  • Если вы установили if из репозитория вашего дистрибутива, вы должны отправить это им, чтобы они это исправили. А пока вы можете либо обновить его глобально с помощью sudo pip install -U coverage, либо использовать файл virtualenv.
person madjar    schedule 19.11.2012