Python: AssertionError при запуске тестов носа с покрытием

Я довольно хорошо разбираюсь в тестировании python, так что это может быть что-то, что я делаю неправильно ..

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

Traceback (most recent call last):
  File "/usr/local/bin/coverage", line 9, in 
    load_entry_point('coverage==3.5.1', 'console_scripts', 'coverage')()
  File "/usr/local/lib/python2.7/dist-packages/coverage/cmdline.py", line 657, in main
    status = CoverageScript().command_line(argv)
  File "/usr/local/lib/python2.7/dist-packages/coverage/cmdline.py", line 526, in command_line
    self.coverage.stop()
  File "/usr/local/lib/python2.7/dist-packages/coverage/control.py", line 389, in stop
    self.collector.stop()
  File "/usr/local/lib/python2.7/dist-packages/coverage/collector.py", line 262, in stop
    assert self._collectors[-1] is self
AssertionError

Чтобы усложнить задачу, я пытаюсь протестировать утилиту командной строки. Это означает, что я должен был указать покрытие для покрытия вызовов подпроцесса.

Я думаю, что эта часть заработала, так как теперь покрытие показывает% покрытия для выполняемого скрипта. Но так как покрытие работает, я не могу избавиться от AssertionError.

Мы будем очень признательны за помощь в понимании того, что не так. Весь мой код доступен на github:

Быстрый запуск:

cd /tmp/ && git clone git://github.com/h3/django-duke-client.git 
cd django-duke-client && chmod a+x run_tests && ./run_tests

Спасибо

Обновление

Я запустил тест на другом компьютере, и я получил такую ​​же AssertionError .. Плюс новый TypeError. Опять же, тесты работают правильно, и покрытие, похоже, работает правильно даже с этими ошибками ..

...
Ran 9 tests in 1.324s

OK
Traceback (most recent call last):
  File "/usr/local/bin/coverage", line 9, in 
    load_entry_point('coverage==3.5.1', 'console_scripts', 'coverage')()
  File "/usr/local/lib/python2.7/dist-packages/coverage/cmdline.py", line 657, in main
    status = CoverageScript().command_line(argv)
  File "/usr/local/lib/python2.7/dist-packages/coverage/cmdline.py", line 526, in command_line
    self.coverage.stop()
  File "/usr/local/lib/python2.7/dist-packages/coverage/control.py", line 389, in stop
    self.collector.stop()
  File "/usr/local/lib/python2.7/dist-packages/coverage/collector.py", line 262, in stop
    assert self._collectors[-1] is self
AssertionError
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable

Name                               Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------------
dukeclient/__init__                   53     53      2      0     4%   1-93
dukeclient/commands/__init__          41     33      6      2    26%   1-9, 12, 14-15, 17, 24-28, 34-43, 46-63
...

6
задан Oz123 29 March 2016 в 18:33
поделиться