#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 по-своему обрабатывают файлы и требуют дополнительных уточнений в коде. Кроме того, именно такая конструкция предлагается официально.
Комментариев нет:
Отправить комментарий