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

Содержимое удалено Содержимое добавлено
Строка 632:
Реализация по умолчанию не делает ничего.
 
====25.3.8. Объекты TestLoader ====
Класс '''TestLoader''' используется для создания тестовых наборов из классов и модулей. Обычно нет необходимости в создании экземпляров данного класса, модуль '''unittest''' предоставляет экземпляр доступный для использования как '''unittest.defaultTestLoader'''. Тем не менее, использование подклассов или экземпляров позволяет задать значения некоторых настраиваемых параметров класса.
 
Объекты '''TestLoader''' имеют следующие методы:
TestLoader.loadTestsFromTestCase(testCaseClass)¶
 
Возвращает набор из всех тестовых вариантов содержащихся в классе testCaseClass производном от класса TestCase.
'''TestLoader.loadTestsFromModuleloadTestsFromTestCase(module''testCaseClass'')'''
 
Возвращает набор из всех тестовых вариантов заданном модуле. Данный метод просматривает module в поиске классов производных от TestCase и создает по экземпляру каждого класса для каждого тестового метода заданного в классе.
Возвращает набор из всех тестовых вариантов содержащихся в классе '''testCaseClass''' производном от класса '''TestCase'''.
Предупреждение:
 
При использовании иерархии классов производных от TestCase- может оказаться удобным задание тестовых и вспомогательных методов в базовых классах, не предназначенных для непосредственного получения их экземпляров, тестового окружения в подклассах. Использование такой техники не очень хорошо совместимо с данным методом, но может оказаться полезным в том случае если необходимо проводить одинаковые тесты в разном тестовом окружении.
'''TestLoader.loadTestsFromNameloadTestsFromModule(name[, ''module]'')'''
 
Возвращает набор из всех тестовых вариантов заданном модуле. Данный метод просматривает '''module''' в поиске классов производных от '''TestCase''' и создает по экземпляру каждого класса для каждого тестового метода заданного в классе.
 
Предупреждение:<br />
При использовании иерархии классов производных от '''TestCase-''' может оказаться удобным задание тестовых и вспомогательных методов в базовых классах, не предназначенных для непосредственного получения их экземпляров, и задание тестового окружения в подклассах. Использование такой техники не очень хорошо совместимо с данным методом, но может оказаться полезным в том случае если необходимо проводить одинаковые тесты в разном тестовом окружении.
 
'''TestLoader.loadTestsFromName(''name''[, ''module''])'''
 
Возвращает набор всех тестовых вариантов переданных в строке.
name, - это «имя с точками» которое может указывать на модуль, класс тестового варианта, тестовый метод в классе тестового варианта, экземпляр TestSuite, или на вызываемый объект возвращающий экземпляр TestCase или TestSuite. Проверки на тип объекта на который указывается строка проводятся в том порядке, в котором типы перечислены здесь, т.е. метод в классе возможно тестового варианта будет воспринят как «тестовый метод в классе тестового варианта», а не как «вызываемый объект»
Например, для модуля SampleTests содержащего класс SampleTestCase производный от TestCase с тремя тестовыми методами (test_one(), test_two(), и test_three()), по строке 'SampleTests.SampleTestCase' данный метод вернет набор который будет выполнять все три тестовых метода, 'SampleTests.SampleTestCase.test_two' вернет тестовый набор выполняющий только метод test_two().
В строке могут указываться еще не загруженные модули и пакеты, они будут загружены как побочный эффект.
Если в аргументах метода задан модуль module, name обрабатывается относительно указанного модуля.
TestLoader.loadTestsFromNames(names[, module])¶
 
''name'', - — это «имя с точками» которое может указывать на модуль, класс тестового варианта, тестовый метод в классе тестового варианта, экземпляр '''TestSuite''', или на вызываемый объект возвращающий экземпляр '''TestCase''' или '''TestSuite'''. Проверки на тип объекта на который указывается строка проводятся в том порядке, в котором типы перечислены здесь, т.е.то есть метод в классе возможно тестового варианта будет воспринят как «тестовый метод в классе тестового варианта», а не как «вызываемый объект»
Работает аналогично loadTestsFromName(), но принимает поиследовательность строк вместо одной строки. Возвращает тестовый набор поддерживающий все тестовые наборы указанные в строках.
 
TestLoader.getTestCaseNames(testCaseClass)¶
Например, для модуля '''SampleTests''' содержащего класс '''SampleTestCase''' производный от '''TestCase''' с тремя тестовыми методами ('''test_one()''', '''test_two()''', и '''test_three()'''), по строке 'SampleTests.SampleTestCase' данный метод вернет набор который будет выполнять все три тестовых метода, 'SampleTests.SampleTestCase.test_two' вернет тестовый набор выполняющий только метод '''test_two()'''.
Возвращает отсортированную последовательность названий методов обнаруженных в классе testCaseClass, класс должен быть подклассом TestCase.
В строке могут указываться еще не загруженные модули и пакеты, они будут загружены какв побочныйкачестве эффектпобочного эффекта.
Если в аргументах метода задан модуль ''module'', ''name'' обрабатывается относительно указанного модуля.
 
'''TestLoader.loadTestsFromNames(''names''[, ''module''])
 
Работает аналогично '''loadTestsFromName()''', но принимает поиследовательность строк вместо одной строки. Возвращает тестовый набор поддерживающий все тестовые наборы указанные в строках.
 
'''TestLoader.loadTestsFromTestCasegetTestCaseNames(''testCaseClass'')'''
 
Возвращает отсортированную последовательность названий методов обнаруженных в классе '''testCaseClass''', класс должен быть подклассом '''TestCase'''.
 
Следующие атрибуты TestLoader могут настраиваться в подклассах, либо при получении экземпляра класса:
TestLoader.testMethodPrefix¶
Строка задающая префикс имен методов которые обрабатываются как тестовые методы. Значение по умолчанию – ‘test’
Влияет на getTestCaseNames() и все методы loadTestsFrom*().
TestLoader.sortTestMethodsUsing¶
 
'''TestLoader.testMethodPrefix'''
Функция используемая для сравнения имен методов при их сортировке в getTestCaseNames() и всех методах loadTestsFrom*(). Значение по умолчанию, встроенная функция cmp(). Для атрибута также может быть установлено значение None для отмены сортировки.
 
Строка задающая префикс имен методов которые обрабатываются как тестовые методы. Значение по умолчанию — ‘test’
Влияет на '''getTestCaseNames()''' и все методы '''loadTestsFrom*()'''.
 
'''TestLoader.sortTestMethodsUsing'''
 
Функция используемая для сравнения имен методов при их сортировке в '''getTestCaseNames()''' и всех методах '''loadTestsFrom*()'''. Значение по умолчанию, встроенная функция '''cmp()'''. Для атрибута также может быть установлено значение '''None''' для отмены сортировки.
 
'''TestLoader.suiteClass'''
Вызываемый объект создающий тестовый набор из списка тестов. В итоговом объекте никакие методы не требуются. Значение по умолчанию: класс TestSuite.
Влияет на все методы loadTestsFrom*().
 
Значение по умолчанию: класс '''TestSuite'''.
 
Влияет на все методы '''loadTestsFrom*()'''.
 
[[Категория:Python|Справочник по библиотеке Python 2.6]]