#python #python_3x #юнит_тесты #import
Имеется модуль под названием unit, в нем определена функция def get_formated def get_formated(first, midle, last=''): if last: full_name=first+' ' + midle + ' ' + last else: full_name=first+' '+last return full_name.title() Сам тест в модуле testirovanie from unit import get_formated import unittest class UTestFigny(unittest.TestCase): def test_ingfigny(self): fomatedName=get_formated('жаклин','кенеди',) self.assertEqual(fomatedName,'Жаклин Кенеди') unittest.main() Тест фейлится с сообщениями EE ====================================================================== ERROR: testirovanie (unittest.loader._FailedTest) ---------------------------------------------------------------------- AttributeError: module '__main__' has no attribute 'testirovanie' ====================================================================== ERROR: true (unittest.loader._FailedTest) ---------------------------------------------------------------------- AttributeError: module '__main__' has no attribute 'true' Не могу понять причину. Используется Питон 3.5.
Ответы
Ответ 1
В testirovanie должно быть if __name__ == '__main__': unittest.main() __name__ может принимать два значения в зависимости от ситуации. Если модуль импортируется, то оно равно имени модуля. Если модуль исполняется напрямую, оно равно __main__. У меня в IDLE (стандартная базовая IDE от python) приведенный Вами код работает. В более же навороченной сторонней IDE выдает похожие Вашим ошибки. Очевидно, некоторые IDE по-своему обрабатывают файлы и требуют дополнительных уточнений в коде. Кроме того, именно такая конструкция предлагается официально.
Комментариев нет:
Отправить комментарий