Сводка : Существующие данные .coverage сохраняются при запуске nosetests --with-coverage
, поэтому сначала удалите их.
Подробности : Я тоже только что столкнулся с этим через Хадсона и тесты носа. Эта ошибка исходила от coverage/results.py:18
(покрытие 3.3.1 - было 3 места, в которых эта ошибка возникала, но это была соответствующая ошибка). Он пытается открыть файл .py, соответствующий модулю, который был фактически отслежен. Небольшая демка:
$ echo print > hello.py
$ echo import hello > main.py
$ coverage run main.py
$ rm hello.py
$ coverage xml
No source for code: '/tmp/aoeu/hello.py'
Судя по всему, у меня был файл stopwords.pyc, который был выполнен / отслежен, но нет файла stopwords.py. Тем не менее, нигде в моем коде я не импортировал стоп-слова, и даже удаляя .pyc, я все еще получал ошибку.
Простой strings .coverage
затем показал, что ссылка на stopwords.py все еще существует. nosetests --with-coverage
использует функцию добавления или объединения покрытия, что означает, что старые данные .coverage все еще сохраняются. Действительно, удаление .coverage решило проблему.