Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Почему валится unittest тест? AttributeError: module '__main__' has no attribute 'true'

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

Комментариев нет:

Отправить комментарий