Автоматизированные тесты
Для проверки pyOCD используются как модульные, так и функциональные тесты.
Основное различие между модульными и функциональными тестами заключается в том, что модульные тесты работают без подключённого отладочного зонда. Некоторые модульные тесты используют преимущества подключённого зонда для расширения тестирования, но эти тесты будут пропущены, если зонд отсутствует. Напротив, все функциональные тесты требуют подключения хотя бы одного зонда.
Модульные тесты
Модульные тесты находятся в каталоге tests/unit
репозитория. Они должны выполняться с использованием pytest, поскольку они полагаются на расширенные возможности этого инструмента.
Чтобы запустить модульные тесты, просто вызовите pytest
в корневом каталоге репозитория. Прочитайте использование pytest, чтобы увидеть множество предоставляемых им опций.
Чтобы получить результаты покрытия кода, выполните следующие действия:
$ pytest --cov-report=html --cov=pyocd
$ open htmlcov/index.html
Функциональные тесты
В каталоге test/
предоставляется ряд довольно обширных функциональных тестов. Основной скрипт для запуска этих тестов — automated_test.py
. Он выполнит все функциональные тесты последовательно для всех подключённых отладочных зондов, а затем создаст сводку и отчёт в формате JUnit XML. Этот скрипт используется для выполнения нашего плана тестирования CI, и мы часто используем его в наших личных системах разработки для тестирования перед созданием запросов на вытягивание.
Функциональные тесты:
basic_test.py
: простой тест, который проверяет ряд основных функций, от программирования флэш-памяти до доступа к памяти и основным регистрам.blank_test.py
: проверяет возможность подключения к устройствам с пустой флэш-памятью. (Не запускается automated_test.py
.)connect_test.py
: тестирует все комбинации параметров «остановиться при подключении» и «возобновить при отключении».cortex_test.py
: проверяет операции управления ЦП и доступ к памяти.debug_context_test.py
: тестирует некоторые классы DebugContext
.flash_test.py
: комплексный тест программирования флэш-памяти.flash_loader_test.py
: тестирование классов в модуле pyocd.flash.loader
.gdb_server_json_test.py
: проверка вывода JSON от pyocd-gdbserver, используемого такими инструментами, как GNU MCU Eclipse pyOCD plugin.gdb_test.py
: тестирование gdbserver путём запуска скрипта в процессе gdb. Обратите внимание, что в Windows 32-разрядный Python 2.7 должен быть установлен для правильной работы Python-enabled gdb и прохождения теста.parallel_test.py
: поиск проблем с доступом к отладочным зондам из нескольких процессов и потоков одновременно. (Не выполняется automated_test.py
.)speed_test.py
: тест производительности для чтения и записи в память.Тестирование с помощью tox
pyOCD включает файл конфигурации для tox, который позволяет легко тестировать как Python 2.7, так и 3.7. Инструмент tox включён в dev-requirements.txt
, поэтому он уже будет присутствовать в стандартной виртуальной среде разработчика pyOCD.
Чтобы выполнить функциональные тесты для обеих версий Python, просто выполните tox
из корня репозитория pyOCD. Он создаст новые виртуальные среды для каждой версии Python и запустит automated_test.py
.
В настоящее время в конфигурацию tox включены только функциональные тесты.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )