Каков наилучший способ создания команды для setuptools, которая генерирует отчет покрытия кода с использованием coverage.py?команда setuptools для coverage.py
ответ
Вот одно простое решение, которое использует вызовы подпроцесса для исполняемого файла coverage
. Я предполагаю, что у вас есть пакет Python с именем mycoolpackage
, который содержит код, для которого вы хотите измерить охват тестирования, и у вас есть пакет mytests
, который предоставляет функцию suite
, которая возвращает набор тестов.
Во-первых, создать run-tests.py
файл:
import os.path, sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
import unittest
from mytests import suite
unittest.main(defaultTest='suite')
затем в setup.py
создать следующую команду и добавить его в cmdclass
аргумент функции setup()
.
class run_coverage(Command):
description = "Generate a test coverage report."
user_options = []
def initialize_options(self): pass
def finalize_options(self): pass
def run(self):
import subprocess
subprocess.call(['coverage', 'run', '--source=mycoolpackage', 'run-tests.py'])
subprocess.call(['coverage', 'html'])
Обратите внимание, что coverage.py
действительно есть API, который позволит вам сделать это без использования подпроцесс вызова.
То, что вы ищете, является Extending Distutils capabilities through extensions, и оно покрыто документами, с которыми я связан. Основная идея состоит в том, чтобы дать команду и точку entr5y для выполнения, а точка входа должна следовать некоторой терминологии, основанной на компонентах setuptools. Я думаю, вам повезло здесь, потому что кто-то уже успешно (Adding Test Code Coverage Analysis to a Python Project's setup Command) интегрировал его для своего проекта, и вы должны уметь его использовать для своих целей.
- 1. coverage.py и setup.py и тестирования Django
- 2. coverage.py и функциональное тестирование
- 3. coverage.py: исключить файлы
- 4. Сообщение «Нет источника для кода» в Coverage.py
- 5. Настройка coverage.py использовать не миграции
- 6. Как интерпретировать результаты покрытия Python coverage.py?
- 7. Coverage.py предлагает мне проверить для ImportError - как это сделать?
- 8. Python Setuptools, настройка easy_install mac
- 9. Требования к настройке Setuptools
- 10. Pyramid, Dart, setuptools
- 11. Kivy Buildozer - «Нет модуля с именем setuptools» после установки setuptools
- 12. IronPython и setuptools/ez_install
- 13. Как удалить setuptools python
- 14. Python Setuptools построить ошибку RPM
- 15. setuptools download cache path
- 16. Parse setup.py без setuptools
- 17. Изменить setuptools gcc buildpath для Python
- 18. Fix permissions для rpm/setuptools упаковка
- 19. Папка для data_files в setup.py build (setuptools)
- 20. Как установить setuptools?
- 21. Python setuptools install_requires error
- 22. Выгрузка Setuptools питон пакеты
- 23. setuptools easy_install mac error
- 24. Setuptools sdist игнорировать data_files
- 25. Какова цель python setuptools?
- 26. Setuptools не найден
- 27. Условные setuptools entry_points
- 28. Установка setuptools и pip
- 29. Как работает Python setuptools?
- 30. Отказано в Setuptools
Добавление команды покрытия действительно будет полезно только в том случае, если вы используете внутренний testrunner для setuptools. С этим вы можете просто запустить команду покрытия. –