Python/Справочник по библиотеке Python 2.6: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 569:
В типичном сценарии использования объекта '''TestSuite''', метод '''run()''' вызывается классом '''TestRunner''', а не пользовательской обвязкой теста.
 
====25.3.7. Объекты TestResult ====
Объект '''TestResult''' хранит результаты выполнения серии тестов. Классы '''TestCase''' и '''TestSuite''' отвечают за корректную запись результатов тестов. Авторам тестов нет необходимости заниматься записью исходов тестов.
Тестовые каркасы созданные поверх 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''' возвращается методом '''TestRunner.run()'''.
TestResult.testsRun¶
 
При исследовании результатов выполнения серии тестов могут быть интересны следующие атрибуты экземпляров '''TestResult''':
 
'''TestResult.errors'''
 
Список содержащий двух-элементные кортежи из экземпляров '''TestCase''' и строк содержащих отформатированную информацию о состоянии стека (traceback). Каждый кортеж отражает тест поднявший неожиданное исключение.
 
Изменение''Изменено в версии 2.2'': Содержит отформатированную информацию о состоянии стека вместо результатов '''sys.exc_info()'''.
 
'''TestResult.failures'''
 
Список содержащий двух-элементные кортежи из экземпляров TestCase и строк содержащих отформатированную информацию о состоянии стека (traceback). Каждый кортеж отражает тест явно сообщивший о провале теста с помощью методов '''TestCase.fail*()''' либо '''TestCase.assert*()'''.
 
Изменение''Изменено в версии 2.2'': Содержит отформатированную информацию о состоянии стека вместо результатов '''sys.exc_info()'''.
 
'''TestResult.testsRun'''
 
Общее количество уже выполненных тестов.
 
'''TestResult.wasSuccessful()'''
Возвращает True если все уже выполненные тесты прошли успешно, в противном случае возвращает False.
 
TestResult.stop()¶
Возвращает '''True''' если все уже выполненные тесты прошли успешно, в противном случае возвращает '''False'''.
Метод может быть вызван для сигнализации о том, что выполнение серии тестов должна быть прервана установкой атрибута shouldStop класса TestResult в значение True. Объектам TestRunner следует учитывать данный флаг и завершать работу без выполнения каких-либо дополнительных тестов.
 
Данная функция используется, например, классом TextTestRunner для остановки тестового каркаса когда пользователь с помощью клавиатуры сигнализирует о прерывании проверки. Интерактивные утилиты предоставляющие свою реализациюTestRunner могут использовать эту функцию аналогичным образом.
'''TestResult.stop()'''
Следующие методы класса TestResult используются для обслуживания внутренних структур данных, и могут расширяться в подклассах для поддержки дополнительных требований вывода информации. В частности это может быть полезно при создании утилит поддерживающих интерактивное предоставление информации в процессе выполнения тестов.
 
TestResult.startTest(test)¶
Метод может быть вызван для сигнализации о том, что выполнение серии тестов должна быть прервана установкой атрибута '''shouldStop''' класса '''TestResult''' в значение '''True'''. Объектам '''TestRunner''' следует учитывать данный флаг и завершать работу без выполнения каких-либо дополнительных тестов.
Вызывается перед выполнением тестового варианта test.
 
Реализация по умолчанию просто увеличивает счетчик testsRun экземпляра.
Данная функция используется, например, классом '''TextTestRunner''' для остановки тестового каркаса когда пользователь с помощью клавиатуры сигнализирует о прерывании проверки. Интерактивные утилиты предоставляющие свою реализациюTestRunnerреализацию '''TestRunner''' могут использовать эту функцию аналогичным образом.
TestResult.stopTest(test)¶
 
Вызывается после завершения тестового варианта test, вне зависимости от исхода теста.
Следующие методы класса '''TestResult''' используются для обслуживания внутренних структур данных, и могут расширяться в подклассах для поддержки дополнительных требований вывода информации. В частности это может быть полезно при создании утилит поддерживающих интерактивное предоставление информации в процессе выполнения тестов.
 
'''TestResult.startTest(''test'')'''
 
Вызывается перед выполнением тестового варианта ''test''.
Реализация по умолчанию просто увеличивает счетчик '''testsRun''' экземпляра.
 
'''TestResult.stopTest(''test'')'''
 
Вызывается после завершения тестового варианта ''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.addSuccessaddError(''test'', ''err'')'''
 
Вызывается в том случае, если тестовый вариант ''test'' поднимает неожиданное исключение. ''err'' — кортеж в формате возвращаемого значения '''sys.exc_info()''': (тип, значение, состояние стека).
 
Реализация по умолчанию добавляет кортеж (''test'', ''formatted_err'') к атрибуту списка ошибок экземпляра. ''formatted_err'' — форматированное состояние стека полученное из ''err''.
 
'''TestResult.addErroraddFailure(''test'', ''err'')'''
 
Вызывается в том случае, если тестовый вариант ''test'' сообщает о провале. ''err'' — кортеж в формате возвращаемого значения '''sys.exc_info()''': (тип, значение, состояние стека).
 
Реализация по умолчанию добавляет кортеж (''test'', ''formatted_err'') к атрибуту списка провалов экземпляра. ''formatted_err'' — форматированное состояние стека полученное из ''err''.
 
'''TestResult.addFailureaddSuccess(''test, err'')'''
 
Вызывается когда тестовый вариант выполняется успешно.
Реализация по умолчанию не делает ничего.
 
====25.3.8. Объекты TestLoader====
Класс TestLoader используется для создания тестовых наборов из классов и модулей. Обычно нет необходимости в создании экземпляров данного класса, модуль unittest предоставляет экземпляр доступный для использования как unittest.defaultTestLoader. Тем не менее, использование подклассов или экземпляров позволяет задать значения некоторых настраиваемых параметров класса.