Как я могу получить данные о покрытии кода из функциональных тестов Python BDD, используя Behavior?

StackOverflow https://stackoverflow.com//questions/23019740

Вопрос

Я не видел ответа на этот конкретный вопрос (Инструмент тестового покрытия для Behavior test framework) и я не видел, чтобы какие-либо результаты поиска Google давали достаточный ответ.Следовательно...

Как я могу получить отчет о покрытии кода от Behavior?Мне трудно поверить, что нет разработчиков Python, использующих методологию BDD, и мне еще труднее поверить, что те разработчики Python, которые используют BDD, делают это без статистики покрытия кода из своих функциональных тестов.Может ли Coverage.py использоваться для управления поведением для создания покрытия кода?Как?

Это было полезно?

Решение

Я не знаю, как использовать себя, но я использовал огурец для BDD, который я думаю, вероятно, почти похожеОтказИ поэтому я думаю, что вы сможете использовать ведущее ведение с покрытием.Вы должны указать, какой файл включить в файл .. (Я использовал его с огурцом).Посмотрите, если Это может помочь.

Надеюсь, это ответьте на ваш вопрос :)

# .coveragerc to control coverage.py
[run]
parallel = True

# if you want to include tests append tests/*
include =
    src/*
    *src*

[paths]
source =
    src/
    */src

tests =
    tests/
    */tests
.

Другие советы

Следуя от предложения Давида выше.

Предполагая, что код будет протестирован, находится в каталоге приложения, добавьте следующее в файл .CVERAGERC .

[run]
source=app/
.

от терминала:

coverage run $(which behave);
.

Затем вы можете использовать отчет о покрытии или покрытие HTML как обычно.Если вы не укажете приложение DIR в вашем файле .CVERAGERC .

Весть может генерировать данные охвата JUnit и Data Data junit и Пакет покрытия может объединить эти данные из нескольких тестовых прогонов А также создайте отчет HTML, который вы можете издавать или автоматически публиковать в своей среде CI.

Вот утверждения, которые я использую в настоящее время для производства, объединения и отчета о освещении величина:

cd your/repo/tests  # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html
.

ГенеракодицетагCode насильно удаляет все внутри ведущих отчетов / каталог, чтобы я гарантировал либо отчет о свежем освещении, либо вообще ничего (создавая отказ в CI, в моем случае). Обратите внимание, что если вы запустите тесты локально, вы захотите добавить запись в файл rm -rf behave-reports/* (или эквивалент), чтобы вы не добавляли и не совершаете результаты тестов.

Запуск величины с .gitignore будет производить выход Junit, в то время как флаг «--junit», как сообщает, где можно написать, что данные Junit на диске.

Запуск --junit-directory съедает весь охват кода и сочетает в себе это в один файл покрытия.

Наконец, coverage combine производит довольно HTML-отчет, который включает в себя все комбинированные данные охвата.

Другой вариант - использовать coverage для запуска основного сценария behavior:

coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py

Конечно, вы захотите указать в своем .coveragerc какие исходные файлы вы хотите включить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top