tf.test.TestCase
Базовый класс для тестов, проверяющих TensorFlow.
tf.test.TestCase(
methodName='runTest'
)
Дочерние классы
Методы
addClassCleanup
@classmethod
addClassCleanup(
function, *args, /, **kwargs
)
Аналогично addCleanup, но функции очистки вызываются даже в случае сбоя setUpClass (в отличие от tearDownClass).
addCleanup
addCleanup(
function, *args, /, **kwargs
)
Добавляет функцию с аргументами, которую нужно вызвать после завершения теста. Добавленные функции вызываются в порядке LIFO после tearDown, независимо от того, завершился тест успешно или с ошибкой.
Функции очистки вызываются даже в случае сбоя setUp (в отличие от tearDown).
addTypeEqualityFunc
addTypeEqualityFunc(
typeobj, function
)
Добавляет функцию сравнения типов в стиле assertEqual.
Этот метод предназначен для подклассов TestCase, которым нужно зарегистрировать собственные функции сравнения типов для вывода более понятных сообщений об ошибках.
| Аргументы | |
|---|---|
typeobj | Тип данных, для которого вызывается эта функция, если оба значения в assertEqual() имеют один и тот же тип. |
function | Вызываемый объект, принимающий два аргумента и необязательный аргумент msg=; он вызывает self.failureException с полезным сообщением об ошибке, если аргументы не равны. |
assertAllClose
assertAllClose(
a, b, rtol=1e-06, atol=1e-06, msg=None
)
Проверяет, что значения двух структур из массивов numpy или тензоров близки.
a и b могут быть вложенными структурами произвольной глубины. Уровнем вложенной структуры может быть dict, namedtuple, tuple или list.
Примечание: реализация следуетnumpy.allclose(и numpy.testing.assert_allclose). Она проверяет, равны ли два массива поэлементно с заданной точностью. Относительная разница (rtol * abs(b)) и абсолютная разницаatolскладываются и сравниваются с абсолютной разницей междуaиb.
| Аргументы | |
|---|---|
a | Ожидаемый массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor), либо произвольно вложенная структура из таких объектов. |
b | Фактический массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor), либо произвольно вложенная структура из таких объектов. |
rtol | Относительная погрешность. |
atol | Абсолютная погрешность. |
msg | Необязательное сообщение, выводимое при сбое. |
| Исключения | |
|---|---|
ValueError | если только один из a[p] и b[p] является словарём или a[p] и b[p] имеют разную длину; здесь [p] обозначает путь к вложенной структуре. Например, если заданы a = [(1, 1), {'d': (6, 7)}] и [p] = [1]['d'], то a[p] = (6, 7). |
assertAllCloseAccordingToType
assertAllCloseAccordingToType(
a,
b,
rtol=1e-06,
atol=1e-06,
float_rtol=1e-06,
float_atol=1e-06,
half_rtol=0.001,
half_atol=0.001,
bfloat16_rtol=0.01,
bfloat16_atol=0.01,
msg=None
)
Как assertAllClose, но также подходит для сравнения массивов fp16.
В частности, точность снижается до 1e-3, если хотя бы один из аргументов имеет тип float16.
| Аргументы | |
|---|---|
a | Ожидаемый массив numpy ndarray или объект, который можно преобразовать в него. |
b | Фактический массив numpy ndarray или объект, который можно преобразовать в него. |
rtol | Относительная погрешность. |
atol | Абсолютная погрешность. |
float_rtol | Относительная погрешность для float32. |
float_atol | Абсолютная погрешность для float32. |
half_rtol | Относительная погрешность для float16. |
half_atol | Абсолютная погрешность для float16. |
bfloat16_rtol | Относительная погрешность для bfloat16. |
bfloat16_atol | Абсолютная погрешность для bfloat16. |
msg | Необязательное сообщение, выводимое при сбое. |
assertAllEqual
assertAllEqual(
a, b, msg=None
)
Проверяет, что два массива numpy или тензора имеют одинаковые значения.
| Аргументы | |
|---|---|
a | Ожидаемый массив numpy ndarray или объект, который можно преобразовать в него. |
b | Фактический массив numpy ndarray или объект, который можно преобразовать в него. |
msg | Необязательное сообщение, выводимое при сбое. |
assertAllGreater
assertAllGreater(
a, comparison_target
)
Проверяет, что все элементы имеют значения больше заданного.
| Аргументы | |
|---|---|
a | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
comparison_target | Целевое значение для сравнения. |
assertAllGreaterEqual
assertAllGreaterEqual(
a, comparison_target
)
Проверяет, что все элементы имеют значения, большие заданного или равные ему.
| Аргументы | |
|---|---|
a | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
comparison_target | Целевое значение для сравнения. |
assertAllInRange
assertAllInRange(
target,
lower_bound,
upper_bound,
open_lower_bound=False,
open_upper_bound=False
)
Проверяет, что все элементы тензора находятся в заданном диапазоне.
| Аргументы | |
|---|---|
target | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
lower_bound | Нижняя граница диапазона |
upper_bound | Верхняя граница диапазона |
open_lower_bound | (bool) указывает, является ли нижняя граница открытой (т. е. > вместо >= по умолчанию) |
open_upper_bound | (bool) указывает, является ли верхняя граница открытой (т. е. < вместо <= по умолчанию) |
| Исключения | |
|---|---|
AssertionError | если тип тензора значений не является упорядоченным числовым типом (float* или int*), имеются значения nan или какие-либо элементы выходят за указанный диапазон. |
assertAllInSet
assertAllInSet(
target, expected_set
)
Проверяет, что все элементы тензора принадлежат заданному замкнутому множеству.
| Аргументы | |
|---|---|
target | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
expected_set | (list, tuple или set) Замкнутое множество, которому должны принадлежать элементы значения target. |
| Исключения | |
|---|---|
AssertionError | если какие-либо элементы не принадлежат expected_set. |
assertAllLess
assertAllLess(
a, comparison_target
)
Проверяет, что все элементы имеют значения меньше заданного.
| Аргументы | |
|---|---|
a | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
comparison_target | Целевое значение для сравнения. |
assertAllLessEqual
assertAllLessEqual(
a, comparison_target
)
Проверяет, что все элементы имеют значения меньше заданного или равные ему.
| Аргументы | |
|---|---|
a | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
comparison_target | Целевое значение для сравнения. |
assertAlmostEqual
assertAlmostEqual(
first, second, places=None, msg=None, delta=None
)
Проверка завершается ошибкой, если объекты не равны: разность округляется до заданного числа знаков после запятой (по умолчанию 7) и сравнивается с нулём либо проверяется, превышает ли разность объектов заданное значение delta.
Обратите внимание: количество знаков после запятой (считая от нуля) обычно не совпадает с количеством значащих цифр (отсчитываемых от старшей значащей цифры).
Если объекты равны, они автоматически будут считаться приблизительно равными.
assertAlmostEquals
assertAlmostEquals(
*args, **kwargs
)
assertArrayNear
assertArrayNear(
farray1, farray2, err, msg=None
)
Проверяет, что два массива чисел с плавающей запятой близки друг к другу.
Проверяет, что для всех элементов farray1 и farray2 выполняется |f1 - f2| < err. В противном случае проверка завершается ошибкой.
| Аргументы | |
|---|---|
farray1 | Список значений с плавающей запятой. |
farray2 | Список значений с плавающей запятой. |
err | Значение с плавающей запятой. |
msg | Необязательное сообщение, выводимое при сбое. |
assertBetween
assertBetween(
value, minv, maxv, msg=None
)
Проверяет, что значение находится между minv и maxv (включительно).
assertCommandFails
assertCommandFails(
command, regexes, env=None, close_fds=True, msg=None
)
Проверяет, что команда оболочки завершается с ошибкой и эта ошибка соответствует одному из регулярных выражений в списке.
| Аргументы | |
|---|---|
command | Список или строка, представляющие запускаемую команду. |
regexes | Список строк с регулярными выражениями. |
env | Словарь настроек переменных среды. Если задано None, для дочернего процесса не будут устанавливаться переменные среды. Это позволяет сделать тесты более изолированными. ПРИМЕЧАНИЕ: такое поведение отличается от стандартного модуля subprocess. |
close_fds | Следует ли закрыть все открытые файловые дескрипторы в дочернем процессе после создания ответвления. |
msg | Необязательное сообщение, выводимое при сбое. |
assertCommandSucceeds
assertCommandSucceeds(
command, regexes=(b'',), env=None, close_fds=True, msg=None
)
Проверяет, что команда оболочки завершается успешно (т. е. с кодом 0).
| Аргументы | |
|---|---|
command | Список или строка, представляющие запускаемую команду. |
regexes | Список байтовых строк с регулярными выражениями, соответствующих успешному результату. |
env | Словарь настроек переменных среды. Если задано None, для дочернего процесса не будут устанавливаться переменные среды. Это позволяет сделать тесты более изолированными. ПРИМЕЧАНИЕ: такое поведение отличается от стандартного модуля subprocess. |
close_fds | Следует ли закрыть все открытые файловые дескрипторы в дочернем процессе после создания ответвления. |
msg | Необязательное сообщение, выводимое при сбое. |
assertContainsExactSubsequence
assertContainsExactSubsequence(
container, subsequence, msg=None
)
Проверяет, что «container» содержит «subsequence» в качестве точной подпоследовательности.
Проверяет, что «container» содержит все элементы «subsequence» в указанном порядке и без других элементов между ними. Например, [1, 2, 3] — точная подпоследовательность [0, 0, 1, 2, 3, 0], но не [0, 0, 1, 2, 0, 3, 0].
| Аргументы | |
|---|---|
container | Список, в котором проверяется наличие подпоследовательности. |
subsequence | Список, который, как предполагается, является точной подпоследовательностью container. |
msg | Необязательное сообщение, выводимое при сбое. |
assertContainsInOrder
assertContainsInOrder(
strings, target, msg=None
)
Проверяет, что указанные строки встречаются в целевой строке в заданном порядке.
Это может быть полезно для проверки вывода HTML.
| Аргументы | |
|---|---|
strings | Список строк, например [ 'fox', 'dog' ] |
target | Целевая строка, в которой нужно найти заданные строки, например 'The quick brown fox jumped over the lazy dog'. |
msg | Необязательное сообщение, выводимое при сбое. |
assertContainsSubsequence
assertContainsSubsequence(
container, subsequence, msg=None
)
Проверяет, что «container» содержит «subsequence» в качестве подпоследовательности.
Проверяет, что «container» содержит все элементы «subsequence» в указанном порядке, но между ними могут находиться другие элементы. Например, [1, 2, 3] — подпоследовательность [0, 0, 1, 2, 0, 3, 0], но не [0, 0, 1, 3, 0, 2, 0].
| Аргументы | |
|---|---|
container | Список, в котором проверяется наличие подпоследовательности. |
subsequence | Список, который, как предполагается, является подпоследовательностью container. |
msg | Необязательное сообщение, выводимое при сбое. |
assertContainsSubset
assertContainsSubset(
expected_subset, actual_set, msg=None
)
Проверяет, является ли фактический итерируемый объект надмножеством ожидаемого итерируемого объекта.
assertCountEqual
assertCountEqual(
first, second, msg=None
)
Проверяет, что два итерируемых объекта содержат одинаковые элементы в одинаковом количестве, независимо от порядка.
self.assertEqual(Counter(list(first)),
Counter(list(second)))
Пример:
- [0, 1, 1] and [1, 0, 1] compare equal. - [0, 0, 1] and [0, 1] compare unequal.
assertDTypeEqual
assertDTypeEqual(
target, expected_dtype
)
Проверяет, что тип данных ndarray совпадает с ожидаемым.
| Аргументы | |
|---|---|
target | Массив numpy ndarray или объект, который можно преобразовать в массив numpy ndarray (включая Tensor). |
expected_dtype | Ожидаемый тип данных. |
assertDataclassEqual
assertDataclassEqual(
first, second, msg=None
)
Проверяет равенство двух классов данных и выводит более подробные сообщения об ошибках.
Оба аргумента должны быть классами данных. Метод сравнивает значения отдельных полей и не сравнивает поля, помеченные как несравниваемые. Различия выводятся для каждого поля, что упрощает их анализ по сравнению со сравнением строковых представлений с помощью assertEqual.
Если для класса данных задан собственный eq, определённый несовместимым с равенством сравниваемых полей способом, вызывается исключение без дальнейшей попытки выяснить различия.
| Аргументы | |
|---|---|
first | Класс данных, первое значение. |
second | Класс данных, второе значение. |
msg | Необязательная строка с соответствующим сообщением. |
| Исключения | |
|---|---|
AssertionError | если классы данных не равны. |
assertDeviceEqual
assertDeviceEqual(
device1, device2, msg=None
)
Проверяет, что два заданных устройства совпадают.
| Аргументы | |
|---|---|
device1 | Строковое имя устройства или объект TensorFlow DeviceSpec. |
device2 | Строковое имя устройства или объект TensorFlow DeviceSpec. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertDictContainsSubset
assertDictContainsSubset(
subset, dictionary, msg=None
)
Проверяет, является ли словарь надмножеством подмножества.
assertDictEqual
assertDictEqual(
a, b, msg=None
)
Проверяет, что два заданных словаря тензоров совпадают.
| Аргументы | |
|---|---|
a | Ожидаемый словарь, содержащий в качестве значений массивы numpy ndarray или любые другие объекты, которые можно преобразовать в такие массивы. |
b | Фактический словарь, содержащий в качестве значений массивы numpy ndarray или любые другие объекты, которые можно преобразовать в такие массивы. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertEmpty
assertEmpty(
container, msg=None
)
Проверяет, что длина объекта равна нулю.
| Аргументы | |
|---|---|
container | Любой объект, реализующий интерфейс collections.abc.Sized. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertEndsWith
assertEndsWith(
actual, expected_end, msg=None
)
Проверяет, что actual.endswith(expected_end) равно True.
| Аргументы | |
|---|---|
actual | str |
expected_end | str |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertEqual
assertEqual(
first, second, msg=None
)
Проверка завершается неудачно, если два объекта не равны согласно оператору '=='.
assertEquals
assertEquals(
*args, **kwargs
)
assertFalse
assertFalse(
expr, msg=None
)
Проверяет, что выражение ложно.
assertGreater
assertGreater(
a, b, msg=None
)
Аналогично self.assertTrue(a > b), но с более понятным сообщением по умолчанию.
assertGreaterEqual
assertGreaterEqual(
a, b, msg=None
)
Аналогично self.assertTrue(a >= b), но с более понятным сообщением по умолчанию.
assertIn
assertIn(
member, container, msg=None
)
Аналогично self.assertTrue(a in b), но с более понятным сообщением по умолчанию.
assertIs
assertIs(
expr1, expr2, msg=None
)
Аналогично self.assertTrue(a is b), но с более понятным сообщением по умолчанию.
assertIsInstance
assertIsInstance(
obj, cls, msg=None
)
Аналогично self.assertTrue(isinstance(obj, cls)), но с более понятным сообщением по умолчанию.
assertIsNone
assertIsNone(
obj, msg=None
)
Аналогично self.assertTrue(obj is None), но с более понятным сообщением по умолчанию.
assertIsNot
assertIsNot(
expr1, expr2, msg=None
)
Аналогично self.assertTrue(a is not b), но с более понятным сообщением по умолчанию.
assertIsNotNone
assertIsNotNone(
obj, msg=None
)
Добавлен для симметрии с assertIsNone.
assertItemsEqual
assertItemsEqual(
first, second, msg=None
)
Проверяет, что два итерируемых объекта содержат одинаковые элементы в одинаковом количестве, независимо от порядка.
self.assertEqual(Counter(list(first)),
Counter(list(second)))
Пример:
- [0, 1, 1] and [1, 0, 1] compare equal. - [0, 0, 1] and [0, 1] compare unequal.
assertJsonEqual
assertJsonEqual(
first, second, msg=None
)
Проверяет, что объекты JSON, заданные в двух строках, равны.
Сводка различий будет включена в сообщение об ошибке с помощью assertSameStructure.
| Аргументы | |
|---|---|
first | Строка, содержащая JSON для декодирования и сравнения со вторым объектом. |
second | Строка, содержащая JSON для декодирования и сравнения с первым объектом. |
msg | Дополнительный текст для включения в сообщение об ошибке. |
assertLen
assertLen(
container, expected_len, msg=None
)
Проверяет, что длина объекта соответствует ожидаемой.
| Аргументы | |
|---|---|
container | Любой объект, реализующий интерфейс collections.abc.Sized. |
expected_len | Ожидаемая длина контейнера. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertLess
assertLess(
a, b, msg=None
)
Аналогично self.assertTrue(a < b), но с более понятным сообщением по умолчанию.
assertLessEqual
assertLessEqual(
a, b, msg=None
)
Аналогично self.assertTrue(a <= b), но с более понятным сообщением по умолчанию.
assertListEqual
assertListEqual(
list1, list2, msg=None
)
Проверка равенства, предназначенная для списков.
| Аргументы | |
|---|---|
list1 | Первый список для сравнения. |
list2 | Второй список для сравнения. |
msg | Необязательное сообщение, которое будет выведено при сбое вместо списка различий. |
assertLogs
assertLogs(
logger=None, level=None
)
Проверка завершается неудачно, если для logger_name или его дочерних логгеров не выведено сообщение уровня level или выше. Если level не указан, по умолчанию используется INFO, а для logger — корневой логгер.
Этот метод необходимо использовать как менеджер контекста. Он вернёт объект записи с двумя атрибутами: output и records. По завершении менеджера контекста атрибут output будет содержать список соответствующих отформатированных сообщений журнала, а атрибут records — список соответствующих объектов LogRecord.
Пример::
with self.assertLogs('foo', level='INFO') as cm:
logging.getLogger('foo').info('first message')
logging.getLogger('foo.bar').error('second message')
self.assertEqual(cm.output, ['INFO:foo:first message',
'ERROR:foo.bar:second message'])
assertMultiLineEqual
assertMultiLineEqual(
first, second, msg=None, **kwargs
)
Проверяет, что две многострочные строки равны.
assertNDArrayNear
assertNDArrayNear(
ndarray1, ndarray2, err, msg=None
)
Проверяет, что значения двух массивов NumPy близки.
| Аргументы | |
|---|---|
ndarray1 | массив numpy ndarray. |
ndarray2 | массив numpy ndarray. |
err | Число с плавающей точкой. Максимально допустимая абсолютная разница. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertNear
assertNear(
f1, f2, err, msg=None
)
Проверяет, что два числа с плавающей точкой близки друг к другу.
Проверяет, что |f1 - f2| < err, и завершает тест с ошибкой, если условие не выполняется.
| Аргументы | |
|---|---|
f1 | Значение с плавающей точкой. |
f2 | Значение с плавающей точкой. |
err | Значение с плавающей точкой. |
msg | Необязательное текстовое сообщение для добавления к сообщению об ошибке. |
assertNoCommonElements
assertNoCommonElements(
expected_seq, actual_seq, msg=None
)
Проверяет, что фактический и ожидаемый итерируемые объекты не имеют общих элементов.
assertNotAllClose
assertNotAllClose(
a, b, rtol=1e-06, atol=1e-06, msg=None
)
Проверяет, что значения двух массивов NumPy или тензоров не являются близкими.
| Аргументы | |
|---|---|
a | Ожидаемый массив numpy ndarray или любой объект, который можно преобразовать в numpy ndarray (включая Tensor), либо любая структура произвольной вложенности, состоящая из таких объектов. |
b | Фактический массив numpy ndarray или любой объект, который можно преобразовать в numpy ndarray (включая Tensor), либо любая структура произвольной вложенности, состоящая из таких объектов. |
rtol | Относительный допуск. |
atol | Абсолютный допуск. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
| Исключения | |
|---|---|
AssertionError | Если a и b неожиданно близки во всех элементах. |
assertNotAllEqual
assertNotAllEqual(
a, b, msg=None
)
Проверяет, что два массива NumPy или тензора не содержат одинаковых значений.
| Аргументы | |
|---|---|
a | Ожидаемый массив numpy ndarray или любой объект, который можно преобразовать в него. |
b | Фактический массив numpy ndarray или любой объект, который можно преобразовать в него. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertNotAlmostEqual
assertNotAlmostEqual(
first, second, places=None, msg=None, delta=None
)
Проверка завершается неудачно, если два объекта равны: это определяется округлением их разности до заданного количества знаков после запятой (по умолчанию 7) с последующим сравнением с нулём либо сравнением разности объектов с заданным значением delta.
Обратите внимание: количество знаков после запятой (от нуля) обычно не совпадает с количеством значащих цифр (отсчитываемых от старшего разряда).
Равные объекты автоматически приводят к сбою проверки.
assertNotAlmostEquals
assertNotAlmostEquals(
*args, **kwargs
)
assertNotEmpty
assertNotEmpty(
container, msg=None
)
Проверяет, что длина объекта не равна нулю.
| Аргументы | |
|---|---|
container | Любой объект, реализующий интерфейс collections.abc.Sized. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertNotEndsWith
assertNotEndsWith(
actual, unexpected_end, msg=None
)
Проверяет, что actual.endswith(unexpected_end) равно False.
| Аргументы | |
|---|---|
actual | str |
unexpected_end | str |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertNotEqual
assertNotEqual(
first, second, msg=None
)
Проверка завершается неудачно, если два объекта равны согласно оператору '!='.
assertNotEquals
assertNotEquals(
*args, **kwargs
)
assertNotIn
assertNotIn(
member, container, msg=None
)
Аналогично self.assertTrue(a not in b), но с более понятным сообщением по умолчанию.
assertNotIsInstance
assertNotIsInstance(
obj, cls, msg=None
)
Добавлен для симметрии с assertIsInstance.
assertNotRegex
assertNotRegex(
text, unexpected_regex, msg=None
)
Тест завершается неудачно, если текст соответствует регулярному выражению.
assertNotRegexpMatches
assertNotRegexpMatches(
*args, **kwargs
)
assertNotStartsWith
assertNotStartsWith(
actual, unexpected_start, msg=None
)
Проверяет, что actual.startswith(unexpected_start) равно False.
| Аргументы | |
|---|---|
actual | str |
unexpected_start | str |
msg | Необязательное сообщение, которое будет выведено при сбое. |
assertProtoEquals
assertProtoEquals(
expected_message_maybe_ascii, message, msg=None, relative_tolerance=None
)
Проверяет, что сообщение совпадает с разобранным expected_message_ascii.
Создаёт ещё один прототип сообщения, считывает в него ASCII-сообщение, а затем сравнивает их с помощью self._AssertProtoEqual().
| Аргументы | |
|---|---|
expected_message_maybe_ascii | Сообщение proto в исходном формате или формате ASCII. |
message | Сообщение для проверки. |
msg | Необязательное сообщение, которое будет выведено при сбое. |
relative_tolerance | Число с плавающей точкой. Допустимая разница между сравниваемыми значениями определяется умножением относительного допуска на максимальное из двух значений. Если параметр не задан, все числа с плавающей точкой сравниваются как строки. |
assertProtoEqualsVersion
assertProtoEqualsVersion(
expected,
actual,
producer=versions.GRAPH_DEF_VERSION,
min_consumer=versions.GRAPH_DEF_VERSION_MIN_CONSUMER,
msg=None
)
assertRaises
assertRaises(
expected_exception, *args, **kwargs
)
Проверка завершается неудачно, если вызываемый объект при вызове с указанными позиционными и именованными аргументами не возбуждает исключение класса expected_exception. Если возникает исключение другого типа, оно не будет перехвачено, и тестовый случай будет считаться завершившимся ошибкой — так же, как при неожиданном исключении.
Если вызвать метод без вызываемого объекта и аргументов, он вернёт объект контекста, который используется следующим образом::
with self.assertRaises(SomeException):
do_something()
Если assertRaises используется как объект контекста, можно указать необязательный именованный аргумент 'msg'.
Менеджер контекста сохраняет ссылку на исключение в атрибуте 'exception'. Это позволяет проверить исключение после утверждения::
with self.assertRaises(SomeException) as cm:
do_something()
the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)
assertRaisesIncompatibleShapesError
assertRaisesIncompatibleShapesError(
exception_type=tf.errors.InvalidArgumentError
)
assertRaisesOpError
assertRaisesOpError(
expected_err_re_or_predicate
)
assertRaisesRegex
assertRaisesRegex(
expected_exception, expected_regex, *args, **kwargs
)
Проверяет, что сообщение в возбужденном исключении соответствует регулярному выражению.
| Аргументы | |
|---|---|
expected_exception | Ожидаемый класс исключения. |
expected_regex | Регулярное выражение (объект re.Pattern или строка), которое должно присутствовать в сообщении об ошибке. |
args | Вызываемая функция и дополнительные позиционные аргументы. |
kwargs | Дополнительные именованные аргументы. |
msg | Необязательное сообщение на случай сбоя. Можно использовать только при применении assertRaisesRegex в качестве менеджера контекста. |
assertRaisesRegexp
assertRaisesRegexp(
expected_exception, expected_regex, *args, **kwargs
)
Проверяет, что сообщение в возбужденном исключении соответствует регулярному выражению.
| Аргументы | |
|---|---|
expected_exception | Ожидаемый класс исключения. |
expected_regex | Регулярное выражение (объект re.Pattern или строка), которое должно присутствовать в сообщении об ошибке. |
args | Вызываемая функция и дополнительные позиционные аргументы. |
kwargs | Дополнительные именованные аргументы. |
msg | Необязательное сообщение на случай сбоя. Можно использовать только при применении assertRaisesRegex в качестве менеджера контекста. |
assertRaisesWithLiteralMatch
assertRaisesWithLiteralMatch(
expected_exception,
expected_exception_message,
callable_obj=None,
*args,
**kwargs
)
Проверяет, что сообщение в возбужденном исключении совпадает с заданной строкой.
В отличие от assertRaisesRegex, этот метод принимает буквальную строку, а не регулярное выражение.
with self.assertRaisesWithLiteralMatch(ExType, 'message'): DoSomething()
| Аргументы | |
|---|---|
expected_exception | Ожидаемый класс исключения. |
expected_exception_message | Строка сообщения, ожидаемая в возбужденном исключении. Для возбужденного исключения e значение expected_exception_message должно совпадать со str(e). |
callable_obj | Вызываемая функция или None для возврата контекста. |
*args | Дополнительные аргументы. |
**kwargs | Дополнительные именованные аргументы. |
| Возвращает | |
|---|---|
| Менеджер контекста, если callable_obj равен None. В противном случае — None. |
| Исключения | |
|---|---|
| self.failureException, если callable_obj не возбуждает соответствующее исключение. |
assertRaisesWithPredicateMatch
@contextlib.contextmanager
assertRaisesWithPredicateMatch(
exception_type, expected_err_re_or_predicate
)
Возвращает менеджер контекста для заключения в него кода, который должен возбудить исключение.
Если исключение является OpError, стек операций также включается в поиск по предикату сообщения.
| Аргументы | |
|---|---|
exception_type | Ожидаемый тип исключения. |
expected_err_re_or_predicate | Если это вызываемый объект, он должен быть функцией с одним аргументом, которая проверяет переданное исключение и возвращает True (успех) или False (тест должен завершиться ошибкой). В противном случае ожидается, что сообщение об ошибке будет частично соответствовать этому регулярному выражению. |
| Возвращает | |
|---|---|
| Менеджер контекста для обрамления кода, который должен возбудить исключение. |
assertRegex
assertRegex(
text, expected_regex, msg=None
)
Тест завершается неудачно, если текст не соответствует регулярному выражению.
assertRegexMatch
assertRegexMatch(
actual_str, regexes, message=None
)
Проверяет, что хотя бы одно регулярное выражение из regexes соответствует str.
Если возможно, используйте assertRegex — упрощённую версию этого метода. assertRegex принимает одно регулярное выражение (строку или скомпилированный объект re) вместо списка.
Примечания:
Эта функция использует сопоставление подстрок: проверка считается успешной, если любая подстрока сообщения об ошибке соответствует любому регулярному выражению из списка. Это удобнее для пользователя, чем сопоставление всей строки.
Если regexes — пустой список, сопоставление всегда завершится неудачно.
Используйте regexes=[''] для регулярного выражения, которое всегда будет успешно проходить проверку.
'.' соответствует любому одиночному символу, кроме символа новой строки. Чтобы сопоставить любой символ, используйте '(.|\n)'.
'^' соответствует началу каждой строки, а не только началу всей строки. Аналогично, '$' соответствует концу каждой строки.
Если regexes содержит недопустимое регулярное выражение, будет возбуждено исключение.
| Аргументы | |
|---|---|
actual_str | Строка, которую мы пытаемся сопоставить с элементами regexes. |
regexes | Регулярные выражения, с которыми нужно сопоставить str. Подробные пояснения о правилах интерпретации см. в примечаниях выше. |
message | Сообщение, которое будет выведено при сбое теста. |
assertRegexpMatches
assertRegexpMatches(
*args, **kwargs
)
assertSameElements
assertSameElements(
expected_seq, actual_seq, msg=None
)
Проверяет, что две последовательности содержат одинаковые элементы (в любом порядке).
В отличие от assertCountEqual, этот метод не учитывает дубликаты в ожидаемой и фактической последовательностях::
# Doesn't raise an AssertionError assertSameElements([1, 1, 1, 0, 0, 0], [0, 1])
Если возможно, используйте assertCountEqual вместо assertSameElements.
| Аргументы | |
|---|---|
expected_seq | Последовательность, содержащая ожидаемые элементы. |
actual_seq | Проверяемая последовательность. |
msg | Сообщение, которое будет выведено при сбое теста. |
assertSameStructure
assertSameStructure(
a, b, aname='a', bname='b', msg=None
)
Проверяет, что два значения содержат одинаковую структуру данных.
Оба аргумента должны представлять собой деревья данных, состоящие из словарей и списков. Они будут рекурсивно сравниваться путём обхода содержимого словарей и списков; остальные элементы будут сравниваться с помощью оператора ==. Если содержимое структур различается, сообщение об ошибке укажет расположение первого найденного различия. Это может быть полезно при сравнении больших структур.
Поддерживаются смешанные типы Sequence и Set. Смешанные типы Mapping также поддерживаются, но порядок ключей при сравнении не учитывается.
| Аргументы | |
|---|---|
a | Первая структура для сравнения. |
b | Вторая структура для сравнения. |
aname | Имя переменной, используемое для первой структуры в сообщениях проверки. |
bname | Имя переменной для второй структуры. |
msg | Дополнительный текст для включения в сообщение об ошибке. |
assertSequenceAlmostEqual
assertSequenceAlmostEqual(
expected_seq, actual_seq, places=None, msg=None, delta=None
)
Проверка приблизительного равенства упорядоченных последовательностей.
Проверка завершается неудачно, если последовательности не равны: это определяется округлением разностей значений до заданного количества знаков после запятой (по умолчанию 7) с последующим сравнением с нулём либо сравнением разности каждого значения в последовательностях с заданным значением delta.
Обратите внимание: количество знаков после запятой (от нуля) обычно не совпадает с количеством значащих цифр (отсчитываемых от старшего разряда).
Если две последовательности равны, они автоматически считаются приблизительно равными.
| Аргументы | |
|---|---|
expected_seq | Последовательность, содержащая ожидаемые элементы. |
actual_seq | Проверяемая последовательность. |
places | Количество знаков после запятой для сравнения. |
msg | Сообщение, которое будет выведено при сбое теста. |
delta | Допустимая разница между сравниваемыми значениями. |
assertSequenceEqual
assertSequenceEqual(
seq1, seq2, msg=None, seq_type=None
)
Проверка равенства упорядоченных последовательностей (например, списков и кортежей).
Для этой функции допустимым упорядоченным типом последовательности считается тип, поддерживающий индексацию, имеющий длину и оператор равенства.
| Аргументы | |
|---|---|
seq1 | Первая последовательность для сравнения. |
seq2 | Вторая последовательность для сравнения. |
seq_type | Ожидаемый тип данных последовательностей или None, если тип данных не требуется проверять. |
msg | Необязательное сообщение, которое выводится при ошибке вместо списка различий. |
assertSequenceStartsWith
assertSequenceStartsWith(
prefix, whole, msg=None
)
Проверка равенства начальных элементов упорядоченных последовательностей.
Если prefix — пустая последовательность, будет вызвана ошибка, если whole также не является пустой последовательностью.
Если prefix не является последовательностью, будет вызвана ошибка, если первый элемент whole не совпадает с ним.
| Аргументы | |
|---|---|
prefix | Последовательность, ожидаемая в начале параметра whole. |
whole | Последовательность, в которой нужно искать prefix. |
msg | Необязательное сообщение, выводимое при ошибке. |
assertSetEqual
assertSetEqual(
set1, set2, msg=None
)
Проверка равенства, предназначенная для множеств.
| Аргументы | |
|---|---|
set1 | Первое множество для сравнения. |
set2 | Второе множество для сравнения. |
msg | Необязательное сообщение, которое выводится при ошибке вместо списка различий. |
assertSetEqual использует утиный тип для поддержки различных типов множеств и оптимизирован для множеств (параметры должны поддерживать метод difference).
assertShapeEqual
assertShapeEqual(
input_a, input_b, msg=None
)
Проверяет, что объекты Numpy или TensorFlow имеют одинаковую форму.
Для тензоров сравниваются формы, известные статически во время компиляции, а не динамические формы во время выполнения.
| Аргументы | |
|---|---|
input_a | Массив Numpy ndarray, скаляр Numpy или тензор. |
input_b | Массив Numpy ndarray, скаляр Numpy или тензор. |
msg | Необязательное сообщение, выводимое при ошибке. |
| Вызывает исключение | |
|---|---|
TypeError | Если аргументы имеют неверный тип. |
assertStartsWith
assertStartsWith(
actual, expected_start, msg=None
)
Проверяет, что actual.startswith(expected_start) имеет значение True.
| Аргументы | |
|---|---|
actual | str |
expected_start | str |
msg | Необязательное сообщение, выводимое при ошибке. |
assertTotallyOrdered
assertTotallyOrdered(
*groups, **kwargs
)
Проверяет корректность реализации отношения полного порядка.
Например, предположим, что у вас есть класс A, сравнение объектов которого выполняется только по атрибуту x. Для краткости другие методы сравнения, кроме __lt__, опущены:
class A(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __hash__(self):
return hash(self.x)
def __lt__(self, other):
try:
return self.x < other.x
except AttributeError:
return NotImplemented
assertTotallyOrdered проверяет, что экземпляры можно правильно упорядочить. Например:
self.assertTotallyOrdered(
[None], # None should come before everything else.
[1], # Integers sort earlier.
[A(1, 'a')],
[A(2, 'b')], # 2 is after 1.
[A(3, 'c'), A(3, 'd')], # The second argument is irrelevant.
[A(4, 'z')],
['foo']) # Strings sort last.
| Аргументы | |
|---|---|
*groups | Список групп элементов. Каждая группа — это список равных объектов. Элементы каждой группы должны быть меньше элементов следующей группы. Например, следующие группы полностью упорядочены: [None], [1], [2, 2], [3]. |
**kwargs | Можно передать необязательный именованный аргумент msg. |
assertTrue
assertTrue(
expr, msg=None
)
Проверяет, что выражение истинно.
assertTupleEqual
assertTupleEqual(
tuple1, tuple2, msg=None
)
Проверка равенства, предназначенная для кортежей.
| Аргументы | |
|---|---|
tuple1 | Первый кортеж для сравнения. |
tuple2 | Второй кортеж для сравнения. |
msg | Необязательное сообщение, которое выводится при ошибке вместо списка различий. |
assertUrlEqual
assertUrlEqual(
a, b, msg=None
)
Проверяет равенство URL, не учитывая порядок параметров запроса.
assertWarns
assertWarns(
expected_warning, *args, **kwargs
)
Проверка завершается ошибкой, если при вызове callable с указанными позиционными и именованными аргументами не возникает предупреждение класса warnClass. Предупреждение другого типа обрабатываться не будет: в зависимости от действующих правил фильтрации предупреждений оно может быть подавлено, выведено или вызвано как исключение.
Если callable и аргументы не указаны, возвращается объект контекста, который используется следующим образом:
with self.assertWarns(SomeWarning):
do_something()
При использовании assertWarns как объекта контекста можно передать необязательный именованный аргумент 'msg'.
Менеджер контекста сохраняет ссылку на первое подходящее предупреждение в атрибуте 'warning'; атрибуты 'filename' и 'lineno' аналогичным образом содержат сведения о строке кода Python, вызвавшей предупреждение. Это позволяет проверить предупреждение после выполнения проверки:
with self.assertWarns(SomeWarning) as cm:
do_something()
the_warning = cm.warning
self.assertEqual(the_warning.some_attribute, 147)
assertWarnsRegex
assertWarnsRegex(
expected_warning, expected_regex, *args, **kwargs
)
Проверяет, что сообщение вызванного предупреждения соответствует регулярному выражению. В целом метод работает так же, как assertWarns(), но успешными считаются только предупреждения, сообщения которых также соответствуют регулярному выражению.
| Аргументы | |
|---|---|
expected_warning | Ожидаемый класс предупреждения. |
expected_regex | Регулярное выражение (объект re.Pattern или строка), которое должно присутствовать в сообщении об ошибке. |
args | Вызываемая функция и дополнительные позиционные аргументы. |
kwargs | Дополнительные именованные аргументы. |
msg | Необязательное сообщение, используемое в случае ошибки. Можно использовать только при применении assertWarnsRegex в качестве менеджера контекста. |
assert_
assert_(
*args, **kwargs
)
cached_session
@contextlib.contextmanager
cached_session(
graph: Optional[tf.Graph] = None,
config: Optional[tf.compat.v1.ConfigProto] = None,
use_gpu: bool = True,
force_gpu: bool = False
) -> Iterator[tf.compat.v1.Session]
Возвращает сеанс TensorFlow для выполнения тестов.
Этот метод работает не так, как self.session(): для повышения производительности cached_session по умолчанию повторно использует один и тот же сеанс в рамках одного теста. Сеанс, возвращённый этой функцией, будет закрыт только в конце теста (в функции TearDown).
Используйте параметры use_gpu и force_gpu, чтобы указать, где выполнять операции. Если force_gpu имеет значение True, все операции закрепляются за /device:GPU:0. В противном случае, если use_gpu имеет значение True, TensorFlow пытается выполнять на GPU как можно больше операций. Если оба параметра force_gpu anduse_gpu` имеют значение False, все операции закрепляются за CPU.
Пример:
class MyOperatorTest(test_util.TensorFlowTestCase):
def testMyOperator(self):
with self.cached_session() as sess:
valid_input = [1.0, 2.0, 3.0, 4.0, 5.0]
result = MyOperator(valid_input).eval()
self.assertEqual(result, [1.0, 2.0, 3.0, 5.0, 8.0]
invalid_input = [-1.0, 2.0, 7.0]
with self.assertRaisesOpError("negative input not supported"):
MyOperator(invalid_input).eval()
| Аргументы | |
|---|---|
graph | Необязательный граф, используемый в возвращаемом сеансе. |
config | Необязательный config_pb2.ConfigProto для настройки сеанса. |
use_gpu | Если значение True, метод пытается выполнить на GPU как можно больше операций. |
force_gpu | Если значение True, все операции закрепляются за /device:GPU:0. |
| Предоставляет | |
|---|---|
| Объект Session, который следует использовать как менеджер контекста, охватывающий код построения и выполнения графа в тестовом случае. |
captureWritesToStream
@contextlib.contextmanager
captureWritesToStream(
stream
) -> Iterator[CapturedWrites]
Менеджер контекста, перехватывающий записи в указанный поток.
Этот менеджер контекста перехватывает все записи в указанный поток внутри объекта CapturedWrites. При создании менеджера контекста он возвращает объект CapturedWrites. Получить перехваченное содержимое можно, вызвав .contents() для объекта CapturedWrites.
Для работы этой функции поток должен иметь файловый дескриптор, который можно изменить с помощью os.dup и os.dup2, а также поддерживать метод .flush(). Примерами таких потоков являются стандартные потоки Python sys.stdout и sys.stderr. Обратите внимание: функция не работает в блокнотах Colab или Jupyter, поскольку в них используются альтернативные потоки stdout.
Пример:
class MyOperatorTest(test_util.TensorFlowTestCase):
def testMyOperator(self):
input = [1.0, 2.0, 3.0, 4.0, 5.0]
with self.captureWritesToStream(sys.stdout) as captured:
result = MyOperator(input).eval()
self.assertStartsWith(captured.contents(), "This was printed.")
| Аргументы | |
|---|---|
stream | Поток, записи в который нужно перехватывать. У потока должен быть файловый дескриптор, должна поддерживаться запись через этот дескриптор и должен иметься метод .flush(). |
| Предоставляет | |
|---|---|
Объект CapturedWrites, содержащий все записи в указанный поток, сделанные в рамках этого контекста. |
checkedThread
checkedThread(
target: Callable[..., Any],
args: Optional[tuple[Any, ...]] = None,
kwargs: Optional[dict[str, Any]] = None
) -> _CheckedThread
Возвращает обёртку Thread, проверяющую успешное завершение 'target'.
Этот метод следует использовать для создания всех потоков в тестовых случаях, поскольку в противном случае поток может завершиться с ошибкой без уведомления и/или проверки, выполненные в потоке, могут быть проигнорированы.
| Аргументы | |
|---|---|
target | Вызываемый объект, который будет выполняться в потоке. |
args | Кортеж аргументов для вызова target. По умолчанию — (). |
kwargs | Словарь именованных аргументов для вызова target. По умолчанию — {}. |
| Возвращает | |
|---|---|
| Обёртку для threading.Thread, поддерживающую методы start() и join(). |
countTestCases
countTestCases()
create_tempdir
create_tempdir(
name=None, cleanup=None
)
Создаёт временный каталог для теста.
Примечание: Каталог и его содержимое будут рекурсивно очищены перед созданием. Это гарантирует отсутствие ранее созданных данных.
Создаёт на диске именованный каталог, изолированный для этого теста и корректно удаляемый после его завершения. Это позволяет избежать ряда проблем при создании временных каталогов для тестов, а также упрощает настройку каталогов и проверку их содержимого. Например:
def test_foo(self):
out_dir = self.create_tempdir()
out_log = out_dir.create_file('output.log')
expected_outputs = [
os.path.join(out_dir, 'data-0.txt'),
os.path.join(out_dir, 'data-1.txt'),
]
code_under_test(out_dir)
self.assertTrue(os.path.exists(expected_paths[0]))
self.assertTrue(os.path.exists(expected_paths[1]))
self.assertEqual('foo', out_log.read_text())
См. также: :meth:create_tempfile для создания временных файлов.
| Аргументы | |
|---|---|
name | Необязательное имя каталога. Если оно не указано, будет сгенерировано и использовано уникальное имя. |
cleanup | Необязательная политика очистки, определяющая, когда и нужно ли удалять каталог (и всё его содержимое) по завершении теста. Если указано None, используется :attr:tempfile_cleanup. |
| Возвращает | |
|---|---|
| Объект _TempDir, представляющий созданный каталог; инструкции по использованию см. в документации класса _TempDir. |
create_tempfile
create_tempfile(
file_path=None,
content=None,
mode='w',
encoding='utf8',
errors='strict',
cleanup=None
)
Создаёт временный файл для теста.
Создаёт на диске именованный файл, изолированный для этого теста и корректно удаляемый после его завершения. Это позволяет избежать ряда проблем при создании временных файлов для тестов, а также упрощает настройку файлов и их данных, чтение и проверку содержимого при сбое теста. Например:
def test_foo(self):
output = self.create_tempfile()
code_under_test(output)
self.assertGreater(os.path.getsize(output), 0)
self.assertEqual('foo', output.read_text())
Примечание: Файл будет обнулён. Это гарантирует отсутствие ранее созданных данных. ПРИМЕЧАНИЕ: если файл уже существует, ему будут предоставлены права на запись, и он будет перезаписан.
См. также: :meth:create_tempdir для создания временных каталогов и _TempDir.create_file для создания файлов внутри временного каталога.
| Аргументы | |
|---|---|
file_path | Необязательный путь к временному файлу. Если он не указан, будет сгенерировано и использовано уникальное имя файла. В имени разрешены косые черты; отсутствующие промежуточные каталоги будут созданы. ПРИМЕЧАНИЕ: очистке подлежит этот путь, включая все каталоги в нём; например, 'foo/bar/baz.txt' будет rm -r foo. |
content | Необязательная строка или последовательность байтов, которая будет изначально записана в файл. Если параметр не указан, создаётся пустой файл. |
mode | Строка режима для записи содержимого. Используется только в том случае, если content не пуст. |
encoding | Кодировка для записи строкового содержимого. Используется только в том случае, если content является текстом. |
errors | Способ обработки ошибок при кодировании текста в байты. Используется только в том случае, если content является текстом. |
cleanup | Необязательная политика очистки, определяющая, когда и нужно ли удалять каталог (и всё его содержимое) по завершении теста. Если указано None, используется :attr:tempfile_cleanup. |
| Возвращает | |
|---|---|
| Объект _TempFile, представляющий созданный файл; инструкции по использованию см. в документации класса _TempFile. |
debug
debug()
Запускает тест без сбора ошибок в TestResult
defaultTestResult
defaultTestResult()
doClassCleanups
@classmethod doClassCleanups()
Выполняет все функции очистки класса. Обычно вызывается автоматически после tearDownClass.
doCleanups
doCleanups()
Выполняет все функции очистки. Обычно вызывается автоматически после tearDown.
enter_context
enter_context()
evaluate
evaluate(
tensors
) -> Union[ragged_tensor_value.RaggedTensorValue, sparse_tensor.
SparseTensorValue, None]
Вычисляет тензоры и возвращает значения numpy.
| Аргументы | |
|---|---|
tensors | Тензор или вложенный список/кортеж тензоров. |
| Возвращает | |
|---|---|
| Значения тензоров в формате numpy. |
evaluate_if_both_tensors
evaluate_if_both_tensors(
a, b
)
fail
fail(
msg=None, user_msg=None
) -> NoReturn
Немедленно завершает выполнение с указанным стандартным сообщением и сообщением пользователя.
failIf
failIf(
*args, **kwargs
)
failIfAlmostEqual
failIfAlmostEqual(
*args, **kwargs
)
failIfEqual
failIfEqual(
*args, **kwargs
)
failUnless
failUnless(
*args, **kwargs
)
failUnlessAlmostEqual
failUnlessAlmostEqual(
*args, **kwargs
)
failUnlessEqual
failUnlessEqual(
*args, **kwargs
)
failUnlessRaises
failUnlessRaises(
*args, **kwargs
)
get_temp_dir
get_temp_dir() -> str
Возвращает уникальный временный каталог для использования в тесте.
При многократном вызове этого метода в рамках одного теста будет возвращаться одна и та же папка. Однако при разных запусках каталоги будут отличаться. Это гарантирует, что тесты из разных запусков не смогут загрязнять среды друг друга. Если в рамках одного теста нужны несколько уникальных каталогов, используйте tempfile.mkdtemp следующим образом: tempfile.mkdtemp(dir=self.get_temp_dir()):
| Возвращает | |
|---|---|
| Строку — путь к уникальному временному каталогу, созданному для этого теста. |
id
id()
run
run(
result=None
)
session
@contextlib.contextmanager
session(
graph: Optional[tf.Graph] = None,
config: Optional[tf.compat.v1.ConfigProto] = None,
use_gpu: bool = True,
force_gpu: bool = False
) -> Iterator[tf.compat.v1.Session]
Менеджер контекста для сеанса TensorFlow, используемого при выполнении тестов.
Обратите внимание: этот сеанс и граф будут установлены как глобальные значения по умолчанию.
Используйте параметры use_gpu и force_gpu, чтобы указать, где выполнять операции. Если force_gpu имеет значение True, все операции закрепляются за /device:GPU:0. В противном случае, если use_gpu имеет значение True, TensorFlow пытается выполнять на GPU как можно больше операций. Если оба параметра force_gpu anduse_gpu` имеют значение False, все операции закрепляются за CPU.
Пример:
class MyOperatorTest(test_util.TensorFlowTestCase):
def testMyOperator(self):
with self.session():
valid_input = [1.0, 2.0, 3.0, 4.0, 5.0]
result = MyOperator(valid_input).eval()
self.assertEqual(result, [1.0, 2.0, 3.0, 5.0, 8.0]
invalid_input = [-1.0, 2.0, 7.0]
with self.assertRaisesOpError("negative input not supported"):
MyOperator(invalid_input).eval()
| Аргументы | |
|---|---|
graph | Необязательный граф, используемый в возвращаемом сеансе. |
config | Необязательный config_pb2.ConfigProto для настройки сеанса. |
use_gpu | Если значение True, метод пытается выполнить на GPU как можно больше операций. |
force_gpu | Если значение True, все операции закрепляются за /device:GPU:0. |
| Предоставляет | |
|---|---|
| Объект Session, который следует использовать как менеджер контекста, охватывающий код построения и выполнения графа в тестовом случае. |
setUp
setUp()
Метод-перехватчик для настройки тестового окружения перед его использованием.
setUpClass
@classmethod setUpClass()
Метод-перехватчик для настройки окружения класса перед запуском тестов этого класса.
shortDescription
shortDescription()
Формирует строку из имени метода теста и первой строки его docstring.
Если docstring не задан, возвращает только имя метода.
Этот метод переопределяет unittest.TestCase.shortDescription(), который возвращает только первую строку docstring и тем самым скрывает имя теста при ошибке.
| Возвращает | |
|---|---|
desc | Краткое описание метода теста. |
skipTest
skipTest(
reason
)
Пропускает этот тест.
subTest
@contextlib.contextmanager
subTest(
msg=_subtest_msg_sentinel, **params
)
Возвращает менеджер контекста, который выполняет заключённый в него блок кода как подтест, определяемый необязательными параметрами message и keyword. Сбой подтеста помечает тестовый случай как завершившийся неудачно, но выполнение возобновляется после завершения блока, что позволяет продолжить выполнение остального кода теста.
tearDown
tearDown()
Метод-перехватчик для очистки тестового окружения после выполнения теста.
tearDownClass
@classmethod tearDownClass()
Метод-перехватчик для очистки окружения класса после выполнения всех тестов этого класса.
test_session
@contextlib.contextmanager
test_session(
graph: Optional[tf.Graph] = None,
config: Optional[tf.compat.v1.ConfigProto] = None,
use_gpu: bool = True,
force_gpu: bool = False
) -> Iterator[tf.compat.v1.Session]
Вместо этого используйте cached_session. (устарело)
__call__
__call__(
*args, **kwds
)
Вызывает self как функцию.
__eq__
__eq__(
other
)
Возвращает результат сравнения self==value.
| Переменные класса | |
|---|---|
| longMessage | True |
| maxDiff | 1600 |
| tempfile_cleanup | <TempFileCleanup.ALWAYS: 'always'> |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/test/TestCase