«Нет источника для кода» в Coverage.py
-
24-09-2019 - |
Вопрос
Я пробежал постройку прошлой ночью, успешно. Я встал сегодня утром и запустил другой без изменения какой-либо конфигурации или изменение любого исходного кода. Теперь моя сборка не в состоянии с сообщением «Нет источника для кода» при запуске мой Носетесты с участием охват.
NoSource: No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/tests/unit/util.py'
. . .
No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/__init__.py'
Единственная подсказка, которую у меня есть, это то, что файлы, которые он говорит, что не может найти, не там, Но они никогда не были, и они не должны быть. Например, в последнем рабочее пространство Hudson не является модулем Python, так __init__.py
не будет там.
Обновлять: Я подтвердил, что это не проблема Гудзона. Когда я беги ностесты с покрытием в самом каталоге, я вижу подобные сообщения. Опять же, файлы, которые ищет охват, никогда не были там, чтобы начать, делая этот очень загадочный.
Решение
Я не уверен, что это считает, что файл существует, но вы можете сообщить Coverage.py, чтобы игнорировать эти проблемы с coverage xml -i
выключатель.
Если вы хотите отслеживать ошибку, опустите мне строку (NED в NED Batchelder COM).
Другие советы
Убедитесь, что нет .pyc файл там, который могло существовать в прошлом.
Резюме: Существующие. Регистрация данных сохраняется при работе при работе 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.cyc, который был выполнен / прослежен, но без Stopwords.cy. Тем не менее, нигде в моем коде я импортировал стоп-слова и даже удалить. Pyc i все еще получил ошибку.
Простой strings .coverage
Затем выяснилось, что ссылка на Stopwords.py все еще существовала. nosetests --with-coverage
Использование добавления покрытия или функциональности слияния, означающих старые. Технические данные все еще задерживаются. Действительно, удаление. Регистрация обратилась к проблеме.
Просто используйте аргумент «- Стереть». Это исправляет эту ошибку, и вам не нужно вручную удалять файлы покрытия
nosetests --with-coverage --cover-erase
Я настоятельно рекомендую проверить помощь, чтобы увидеть, какие другие args вы тоже не пропустите, и не забывайте эти плагины либо
Проблема в том, что .pyc
Файл все еще существует.
Быстрое и грязное решение - удалить все .pyc
Файлы в этом каталоге:
find . -name "*.pyc" -exec rm -rf {} \;
Я бежал в эту проблему, а также при попытке запустить охват нешестей через SetUptools. Как уже упоминалось, можно удалить существующие файлы. Pycc, но которые могут быть громоздкими.
Я оказался, чтобы создать файл .ceveragerC со следующими
отчет
Ignore_Errors = True.
исправить эту ошибку.
Может быть, это поможет, но я столкнулся с аналогичной ошибкой сегодня. И это ошибка разрешений. Мой код использует оформление заказа от другого пользователя (по проектированию, внизу), и мне нужно sudo для того, чтобы покрыть для работы. Таким образом, ваша проблема может иметь что-то для этого.