Тестирование функций из импортированного скрипта Python, который создает шаблон django, приводит к тому, что указанная функция выполняется при запуске теста.
Файл тестирования находится в той же папке, что и тестируемый скрипт.Файл тестирования включает unittest.main()
согласно документации unittest
.Протестированный скрипт также включает if __name__ == "__main__"
, под которым находится основная функция, вызывающая все остальные функции в скрипте.
Если я поставлю if _name__ == "__main__"
в верхней части тестируемого скрипта и запусту весь скрипт под этим, еслиБлок, сценарий все еще работает как задумано, однако при запуске файла тестирования выдается ImportError
.
Ссылка на сценарий (это не очень долго): https://github.com/PersonRP7/django_tests_generator_standalone/blob/functional_refactor/mts_functional.py
import unittest
import mts_functional
class TestMakeTestStandalone(unittest.TestCase):
def test_set_app_name(self):
app_name = "one"
response = mts_functional.set_app_name()
self.assertEqual(
response,
"one"
)
Когда я запускаю вышеупомянутый тест (либо в Atom, либо в powershell, используя python -m unittest discover
), меня запрашивают app_name
, и если мой ответ соответствует переменной app_name
, определенной в test_set_app_name(self)
,тест проходит.Если этого не произойдет, тест не пройден.
Я также пытался импортировать отдельные функции, используя from mts_functional import some_function
, но результат был таким же.
Я не уверен, что этодаже правильный подход, или как протестировать другие более сложные функции, но это, вероятно, другая тема, учитывая приоритеты в действительности правильного импорта и запуска тестового файла.