Как вывести покрытие XML с помощью носовых тестов?

Я пытаюсь вывести XML-код покрытия моих носовых тестов, чтобы они отображались на Hudson. Строка, которую я выполняю:

nosetests --with-gae -v --all-modules --with-xunit --with-coverage

Я вижу вывод покрытия в консоли, но XML-файла, содержащего данные о покрытии, нет. Как я могу заставить его выводить покрытие xml?


person Cuga    schedule 21.01.2011    source источник


Ответы (2)


После запуска команды nosetests в каталоге появится файл данных .coverage. Если вы затем запустите coverage xml, он создаст XML-файл, совместимый с Cobertura, из файла .coverage.

person Ned Batchelder    schedule 21.01.2011
comment
С каким пакетом вы это делаете? Я установил покрытие с помощью pip, и оно жалуется на отсутствие модуля xml. - person hithwen; 25.02.2014
comment
@hithwen, когда установлено покрытие python, вы можете выполнить его как python -m coverage xml --include="mypackage*" - person ezdazuzena; 07.08.2014

Для этого есть плагин, написанный для nosetests.

Вам просто нужно добавить --with-xcoverage после установки этого пакета. Его можно найти по адресу:

https://github.com/cmheisel/nose-xcover

person Jeremy Cunningham    schedule 25.01.2011
comment
Спасибо. Это работает лучше, чем другой ответ? Другой способ имеет тенденцию запускать метрики покрытия по всему коду в моем PYTHONPATH, даже если я говорю ему просто делать все в моей папке «тесты». - person Cuga; 26.01.2011
comment
Вариант, который я дал, действительно такой же, но делается напрямую через плагин для носа. Добавьте параметр --cover-package=PACKAGE_NAME, чтобы ограничить код, включенный в покрытие. - person Jeremy Cunningham; 02.02.2011