- pygame.tests
-
Пакет Pygame набора тестов
Быстрый способ запуска пакета набора тестов из командной строки — импортировать подмодуль go с помощью параметра Python -m:
python -m pygame.tests [<test options>]
Параметр командной строки --help отображает сообщение об использовании. Доступные параметры соответствуют аргументам
pygame.tests.run().Подмодули xxxx_test пакета тестов представляют собой наборы тестов для отдельных частей pygame. Каждый также может быть запущен как основная программа. Это полезно, если тест, например cdrom_test, интерактивный.
Для разработки pygame набор тестов можно запустить из корневого каталога дистрибутива pygame. Для удобства предоставляется программа
run_tests.py, хотя test/go.py можно запустить напрямую.Теги на уровне модуля управляют тем, какие модули включены в запуск набора тестов. Теги назначаются модулю набора тестов с соответствующим модулем <name>_tags.py. Модуль тегов имеет глобальный __tags__, список имен тегов. Например,
cdrom_test.pyсодержит файл теговcdrom_tags.py, содержащий список тегов с строкой 'interactive'. Тег 'interactive' указывает, чтоcdrom_test.pyожидает ввода пользователя. Он исключается из запускаrun_tests.pyилиpygame.tests.go. Два других исключаемых тега — 'ignore' и 'subprocess_ignore'. Эти два тега указывают тесты, которые не будут выполняться на конкретной платформе или для которых недоступен соответствующий модуль pygame. Запускатель тестов выведет каждый исключенный модуль вместе с ответственным тегом.- pygame.tests.run()
-
Запуск набора тестов pygamerun(*args, **kwds) -> tuple
Позиционные аргументы (необязательные):
The names of tests to include. If omitted then all tests are run. Test names need not include the trailing '_test'.
Аргументы ключевых слов:
incomplete - fail incomplete tests (default False) nosubprocess - run all test suites in the current process (default False, use separate subprocesses) dump - dump failures/errors as dict ready to eval (default False) file - if provided, the name of a file into which to dump failures/errors timings - if provided, the number of times to run each individual test to get an average run time (default is run each test once) exclude - A list of TAG names to exclude from the run show_output - show silenced stderr/stdout on errors (default False) all - dump all results, not just errors (default False) randomize - randomize order of tests (default False) seed - if provided, a seed randomizer integer multi_thread - if provided, the number of THREADS in which to run subprocessed tests time_out - if subprocess is True then the time limit in seconds before killing a test (default 30) fake - if provided, the name of the fake tests package in the run_tests__tests subpackage to run instead of the normal pygame tests python - the path to a python executable to run subprocessed tests (default sys.executable)Возвращаемое значение:
A tuple of total number of tests run, dictionary of error information. The dictionary is empty if no errors were recorded.
По умолчанию отдельные модули тестов выполняются в отдельных дочерних процессах. Это воссоздает обычное использование pygame, где
pygame.init()иpygame.quit()вызываются только один раз за выполнение программы, и предотвращает нежелательные взаимодействия между модулями тестов. Кроме того, на выполнение тестов устанавливается временной лимит, поэтому замороженные тесты убиваются, когда их время истекло. Используйте опцию одного процесса, если потоки работают неправильно или тесты занимают слишком много времени. Не гарантируется, что все тесты пройдут в режиме одного процесса.Тесты выполняются в случайном порядке, если аргумент randomize равен True или предоставлен аргумент seed. Если целое число seed не предоставлено, используется системное время.
Отдельные модули тестов могут иметь атрибут __tags__, список строк тегов, используемых для выборочного исключения модулей из запуска. По умолчанию игнорируются только интерактивные модули, такие как cdrom_test. Интерактивный модуль должен запускаться из консоли как программа Python.
Эта функция может быть вызвана только один раз за сеанс Python. Она не рекурсивна.
Редактировать на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/tests.html