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

Содержимое удалено Содержимое добавлено
Строка 391:
==== Классы и функции ====
 
<h5>'''class unittest.TestCase([''methodName''])'''</h5>
 
Экземпляры класса '''TestCase''' являются минимальными тестовыми единицами во вселенной '''unittest'''. Данный класс предназначен быть базовым классом, с заданием конкретных тестов в его подклассах. Класс реализует интерфейс необходимый прогонщикуисполнителю тестов для выполнения теста, и методы, которые тестовый код может использовать для проверки и сообщения о разных видах провалов тестирования.
 
Каждый экземпляр TestCase выполняет единственный тестовый метод под названием ''methodName''. Как вы возможно помните, выше приводился пример в котором было что-то вроде этого:
 
<source lang="python">
def suite():
suite = unittest.TestSuite()
Строка 400 ⟶ 403 :
suite.addTest(WidgetTestCase('test_resize'))
return suite
</source>
В нем создаются два экземпляра WidgetTestCase, каждый из которых выполняет единственный тест.
По умолчанию за methodName принимается 'runTest'.
class unittest.FunctionTestCase(testFunc[, setUp[, tearDown[, description]]])¶
Данный класс реализует часть интерфейса TestCase, позволяющую прогонщику теста выполнить тест, но не предоставляет методов с помощью которых тестовый код может обнаруживать ошибки и сообщать о них. Он используется для создания тестовых вариантов на основе унаследованного тестового кода, позволяя интегрировать его в тестовый каркас на базе unittest.
 
В нем создаются два экземпляра '''WidgetTestCase''', каждый из которых выполняет единственный тест.
class unittest.TestSuite([tests])¶
По умолчанию за ''methodName'' принимается 'runTest'.
 
<h4>'''class unittest.FunctionTestCase(testFunc[, ''setUp''[, ''tearDown''[, ''description'']]])</h4>
Класс предоставляет возможность объединения отдельных тестовых вариантов и тестовых наборов. Класс представляет интерфейс необходимый прогонщику тестов для их выполнения как любых других тестовых вариантов. Выполнение экземпляра TestSuite аналогично итерированию по всему набору, с отдельным запуском каждого теста.
Если передается tests, ¬- это должен быть итератор по отдельным тестовым вариантам или другим тестовым наборам которые будут использоваться для начального построения набора. С помощью дополнительных методов класса можно добавлять тестовые варианты и наборы уже после создания экземпляра.
class unittest.TestLoader¶
 
Данный класс реализует часть интерфейса '''TestCase''', позволяющую прогонщикуисполнителю теста выполнить тест, но не предоставляет методов с помощью которых тестовый код может обнаруживать ошибки и сообщать о них. Он используется для создания тестовых вариантов на основе унаследованного тестового кода, позволяя интегрировать его в тестовый каркас на базе '''unittest'''.
Класс отвечает за загрузку тестов в соответствии с различными критериями и их возвращение в обертке TestSuite. Он может проводить загрузку всех тестовых в заданном модуле или подклассе TestCase.
 
class unittest.TestResult¶
<h4>'''class unittest.TestSuite([''tests''])'''</h4>
 
Класс предоставляет возможность объединения отдельных тестовых вариантов и тестовых наборов. Класс представляет интерфейс необходимый прогонщикуисполнителю тестов для их выполнения, как любых других тестовых вариантов. Выполнение экземпляра '''TestSuite''' аналогично итерированию по всему набору тестов, с отдельным запуском каждого теста.
Если передается ''tests'', ¬- это должен быть итератор по отдельным тестовым вариантам или другим тестовым наборам которые будут использоваться для начального построения набора. С помощью дополнительных методов класса можно добавлять тестовые варианты и наборы уже после создания экземпляра.
 
<h4>'''class unittest.TestLoader'''</h4>
 
Класс отвечает за загрузку тестов в соответствии с различными критериями и их возвращение в обертке '''TestSuite'''. Он может проводить загрузку всех тестовых вариантов в заданном модуле или подклассе '''TestCase.'''
 
<h4>'''class unittest.TestResult'''</h4>
 
Класс используется для сбора информации о тестах которые прошли успешно и провалились.
unittest.defaultTestLoader¶
 
<h4>'''unittest.defaultTestLoader'''</h4>
Экземпляр класса TestLoader предназначенный для совместного использования. Если нет необходимости в изменении класса TestLoader, вместо постоянного создания новых экземпляров может использоваться этот.
 
class unittest.TextTestRunner([stream[, descriptions[, verbosity]]])¶
Экземпляр класса '''TestLoader''' предназначенный для совместного использования. Если нет необходимости в изменении класса '''TestLoader''', вместо постоянного создания новых экземпляров может использоваться этот.
Базовая реализация тестового прогонщика, выводящая результаты тестов как стандартные ошибки. У класса есть несколько настраиваемых параметров, но в целом он очень прост. Графические приложения выполняющие тестовые наборы должны предоставлять альтернативные реализации.
 
unittest.main([module[, defaultTest[, argv[, testRunner[, testLoader]]]]])¶
<h4>'''class unittest.TextTestRunner([''stream''[, ''descriptions''[, ''verbosity'']]])'''</h4>
 
Базовая реализация тестового прогонщикаисполнителя, выводящая результаты тестов как стандартные ошибки. У класса есть несколько настраиваемых параметров, но в целом он очень прост. Графические приложения выполняющие тестовые наборы должны предоставлять альтернативные реализации.
 
<h4>'''unittest.main([''module''[, ''defaultTest''[, ''argv''[, ''testRunner''[, ''testLoader'']]]]])'''</h4>
 
Командно-строчная программа выполняющая набор тестов, предназначена для реализации простого выполнения тестовых модулей. Простейшим использованием данной функции является включение следующей строки в конец тестового сценария:
 
<source lang="python">
if __name__ == '__main__':
unittest.main()
</source>
Аргумент testRunner может быть как классом тестового прогонщика, так и уже созданным экземпляром такого класса.
 
В некоторых случаях, уже существующие тесты могут быть написаны с помощью модуля doctest. Для таких случаев в модуле есть класс DocTestSuite, автоматически создающий экземпляры unittest.TestSuite из уже существующих тестов на базе doctest.
Аргумент '''testRunner''' может быть как классом тестового прогонщика, так и уже созданным экземпляром такого класса.
В некоторых случаях, уже существующие тесты могут быть написаны с помощью модуля '''doctest'''. Для таких случаев в модуле есть класс '''DocTestSuite''', автоматически создающий экземпляры '''unittest.TestSuite''' из уже существующих тестов на базе '''doctest'''.
 
'''Появилось в версии 2.3.'''
 
====25.3.5. Объекты TestCase¶====