Python/Справочник по библиотеке Python 2.6: различия между версиями
Содержимое удалено Содержимое добавлено
Tatyr (обсуждение | вклад) |
Tatyr (обсуждение | вклад) |
||
Строка 569:
В типичном сценарии использования объекта '''TestSuite''', метод '''run()''' вызывается классом '''TestRunner''', а не пользовательской обвязкой теста.
====
Объект '''TestResult''' хранит результаты выполнения
Тестовые каркасы созданные поверх unittest могут требовать доступа к объекту TestResult созданному серией тестов, для создания отчетов. Для этих целей экземпляр TestResult возвращается методом TestRunner.run().▼
При исследовании результатов выполнения серии тестов могут быть интересны следующие атрибуты экземпляров TestResult:▼
TestResult.errors¶▼
Список содержащий двух-элементные кортежи из экземпляров TestCase и строк содержащих отформатированную информацию о состоянии стека (traceback). Каждый кортеж отражает тест поднявший неожиданное исключение.▼
Изменение в версии 2.2: Содержит отформатированную информацию о состоянии стека вместо результатов sys.exc_info().▼
TestResult.failures¶ ▼
Список содержащий двух-элементные кортежи из экземпляров TestCase и строк содержащих отформатированную информацию о состоянии стека (traceback). Каждый кортеж отражает тест явно сообщивший о провале теста с помощью методов TestCase.fail*() либо TestCase.assert*().▼
Изменение в версии 2.2: Содержит отформатированную информацию о состоянии стека вместо результатов sys.exc_info().▼
▲Тестовые каркасы созданные поверх '''unittest''' могут требовать доступа к объекту '''TestResult''' созданному
TestResult.testsRun¶▼
▲При исследовании результатов выполнения серии тестов могут быть интересны следующие атрибуты экземпляров '''TestResult''':
▲Список содержащий двух-элементные кортежи из экземпляров '''TestCase''' и строк содержащих отформатированную информацию о
▲
▲Список содержащий двух-элементные кортежи из экземпляров TestCase и строк содержащих отформатированную информацию о
▲
Общее количество уже выполненных тестов.
'''TestResult.wasSuccessful()
Возвращает True если все уже выполненные тесты прошли успешно, в противном случае возвращает False.▼
TestResult.stop()¶▼
▲Возвращает '''True''' если все уже выполненные тесты прошли успешно, в противном случае возвращает '''False'''.
Метод может быть вызван для сигнализации о том, что выполнение серии тестов должна быть прервана установкой атрибута shouldStop класса TestResult в значение True. Объектам TestRunner следует учитывать данный флаг и завершать работу без выполнения каких-либо дополнительных тестов.▼
Данная функция используется, например, классом TextTestRunner для остановки тестового каркаса когда пользователь с помощью клавиатуры сигнализирует о прерывании проверки. Интерактивные утилиты предоставляющие свою реализациюTestRunner могут использовать эту функцию аналогичным образом.▼
Следующие методы класса TestResult используются для обслуживания внутренних структур данных, и могут расширяться в подклассах для поддержки дополнительных требований вывода информации. В частности это может быть полезно при создании утилит поддерживающих интерактивное предоставление информации в процессе выполнения тестов.▼
TestResult.startTest(test)¶▼
▲Метод может быть вызван для сигнализации о том, что выполнение серии тестов должна быть прервана установкой атрибута '''shouldStop''' класса '''TestResult''' в значение '''True'''. Объектам '''TestRunner''' следует учитывать данный флаг и завершать работу без выполнения каких-либо дополнительных тестов.
Вызывается перед выполнением тестового варианта test.▼
Реализация по умолчанию просто увеличивает счетчик testsRun экземпляра.▼
▲Данная функция используется, например, классом '''TextTestRunner''' для остановки тестового каркаса когда пользователь с помощью клавиатуры сигнализирует о прерывании проверки. Интерактивные утилиты предоставляющие свою
TestResult.stopTest(test)¶▼
Вызывается после завершения тестового варианта test, вне зависимости от исхода теста.▼
▲Следующие методы класса '''TestResult''' используются для обслуживания внутренних структур данных, и могут расширяться в подклассах для поддержки дополнительных требований вывода информации. В частности это может быть полезно при создании утилит поддерживающих интерактивное предоставление информации в процессе выполнения тестов.
▲Вызывается перед выполнением тестового варианта ''test''.
▲Реализация по умолчанию просто увеличивает счетчик '''testsRun''' экземпляра.
▲Вызывается после завершения тестового варианта ''test'', вне зависимости от исхода теста.
Реализация по умолчанию не делает ничего.
TestResult.addError(test, err)¶▼
Вызывается в том случае, если тестовый вариант test поднимает неожиданное исключение. err – кортеж в формате возвращаемого значения sys.exc_info(): (тип, значение, состояние стека)▼
Реализация по умолчанию добавляет кортеж (test, formatted_err) к атрибуту списка ошибок экземпляра. formatted_err – форматированное состояние стека полученное из err.▼
TestResult.addFailure(test, err)¶▼
Вызывается в том случае, если тестовый вариант test сообщает о провале. err – кортеж в формате возвращаемого значения sys.exc_info(): (тип, значение, состояние стека)▼
Реализация по умолчанию добавляет кортеж (test, formatted_err) к атрибуту списка провалов экземпляра. formatted_err – форматированное состояние стека полученное из err.▼
'''TestResult.
▲Вызывается в том случае, если тестовый вариант ''test'' поднимает неожиданное исключение. ''err
▲Реализация по умолчанию добавляет кортеж (''test'', ''formatted_err'') к атрибуту списка ошибок экземпляра. ''formatted_err
▲Вызывается в том случае, если тестовый вариант ''test'' сообщает о провале. ''err
▲Реализация по умолчанию добавляет кортеж (''test'', ''formatted_err'') к атрибуту списка провалов экземпляра.
Вызывается когда тестовый вариант выполняется успешно.
Реализация по умолчанию не делает ничего.
====25.3.8. Объекты TestLoader====
Класс TestLoader используется для создания тестовых наборов из классов и модулей. Обычно нет необходимости в создании экземпляров данного класса, модуль unittest предоставляет экземпляр доступный для использования как unittest.defaultTestLoader. Тем не менее, использование подклассов или экземпляров позволяет задать значения некоторых настраиваемых параметров класса.
|