Наконец я обнаружил, что искал не то место, чтобы найти решение.
на самом деле я использую pytest, чтобы проверить ответ учащегося и оценить его. это был способ, которым я сделал это в тот момент, когда я задал этот вопрос.
py.test test_runner.py test_case.py -v
Это проверит ответ пользователя, сохраненный в test_case.py (я получаю второй параметр внутри моего метода тестирования и загружаю его содержание и, например, запустить нужную функцию). Затем я изучал отчет Pytest, чтобы увидеть, была ли ошибка или не удалось решить вопрос о результате. (проход / сбой) обычно pytest завершался неудачей, если в коде пользователя была ошибка (например, синтаксическая ошибка) или если тест не удался (например, не вернул то, что должен вернуть)
На этот раз произошла ошибка ошибка, которую я не хотел, чтобы остановить тест. Я хочу макетировать input()
функцию в коде пользователя. когда я выполнял команду, перед запуском моего метода тестирования pytest импортировал оба файла для сбора методов тестирования. Не удалось импортировать test_case.py из-за функции input()
. Он даже не дошел до строки, которую я попросил смоделировать, и потерпел неудачу на этапе инициализации.
Наконец, чтобы решить проблему, я добавил параметр в py.test, и теперь я запускаю тестовый процесс например:
py.test test_runner.py --program test_case.py -v
В этой форме pytest не ищет в test_case.py
методы тестирования и не терпит неудачу.
надеюсь, что этот опыт поможет кому-то еще