Запуск покрытия внутри virtualenv

Недавно я наткнулся на некоторые проблемы с выполнением измерений охвата в виртуальной среде. Я не помню подобных проблем в прошлом, и я не смог найти решение в Интернете.

В основном, когда я пытаюсь запустить набор тестов в virtualenv, он работает нормально. Но как только я пытаюсь сделать это с помощью coverage , он терпит неудачу из-за отсутствия необходимых им модулей. Основываясь на некотором ответе на StackOverflow, я проверил свой сценарий и выяснил, что в coverage используется другой интерпретатор, даже если он работает из одного и того же virtualenv .

Вот как воспроизвести его:

 $ virtualenv --no-site-packages venv New python executable in venv/bin/python Installing Setuptools................................................done. Installing Pip.......................................................done. $ source venv/bin/activate (venv)$ echo 'import sys; print(sys.executable)' > test.py (venv)$ python test.py /home/tadeck/testground/venv/bin/python (venv)$ coverage run test.py /usr/bin/python 

Возникает вопрос: как легко работать с виртуальной средой? Я мог бы изменить sys.path или установить необходимые модули по всей системе, но должен быть более чистый способ.

2 Solutions collect form web for “Запуск покрытия внутри virtualenv”

поставьте в новом вену

 [alex@gesa ~]$ virtualenv venv [alex@gesa ~]$ source venv/bin/activate (venv)[alex@gesa ~]$ pip install coverage (venv)[alex@gesa ~]$ echo 'import sys; print(sys.executable)' > test.py (venv)[alex@gesa ~]$ python test.py /home/alex/venv/bin/python (venv)[alex@gesa ~]$ coverage run test.py /home/alex/venv/bin/python (venv)[alex@gesa ~]$ 

Я должен был покинуть свой virtualenv после установки покрытия и активировать его, чтобы получить покрытие для работы.

 [alex@gesa ~]$ virtualenv --no-site-packages venv [alex@gesa ~]$ source venv/bin/activate (venv)[alex@gesa ~]$ pip install coverage (venv)[alex@gesa ~]$ deactivate [alex@gesa ~]$ source venv/bin/activate 
  • supervisord не может найти команду в папке virtualenv
  • Ошибка импорта ctypes Python в virtualenv
  • Зачем распространять и устанавливать pip на мой файл ./local/bin?
  • почему не удается запустить «исходный бит / активировать»?
  • Использование virtualenv с Sublime Text 3 и SublimeREPL
  • pip install mysql == 1.2.3 под virtualenv (Разверните Django на Amazon Elastic Beanstalk)
  • Активация виртуального env не работает
  • Как решить проблему конфликта anaconda и virtualenv
  • Python - лучший язык программирования в мире.