#python #pytest
Вопрос:
Я застрял на упражнении. Это файлы, которые мне дали:
Файл для чтения:
Прежде чем начать, убедитесь, что вы выполнили эту команду в своем терминале, чтобы установить pytest:
pip install -U pytest
Затем, чтобы запустить pytest, просто введите:
pytest
Прямо сейчас не все тесты должны пройти. Исправьте функцию, чтобы она прошла все свои тесты! Как только все ваши тесты пройдут, попробуйте написать несколько собственных дополнительных модульных тестов!
А «compute-launch.py» файл:
def days_until_launch(current_day, launch_day):
""""Returns the days left before launch.
current_day (int) - current day in integer
launch_day (int) - launch day in integer
"""
return launch_day - current_day
А «test-compute-launch.py» файл:
from compute_launch import days_until_launch
def test_days_until_launch_4():
assert(days_until_launch(22, 26) == 4)
def test_days_until_launch_0():
assert(days_until_launch(253, 253) == 0)
def test_days_until_launch_0_negative():
assert(days_until_launch(83, 64) == 0)
def test_days_until_launch_1():
assert(days_until_launch(9, 10) == 1)
Это моя проблема:
ModuleNotFoundError: Нет модуля с именем «compute_launch»
Я пробовал просматривать другие потоки переполнения стека, которые содержат ту же ошибку «без имени модуля», но я не смог понять, как можно исправить эту проблему. Я установил pytest. Мне нужно иметь возможность запускать тесты, чтобы я мог видеть, какие тесты работают, а какие нет. Мне не нужна помощь в исправлении или написании модульных тестов, мне нужна только помощь в том, как запустить файл для выполнения модульных тестов.
Спасибо.
Ответ №1:
Вы сохранили файл как compute-launch.py
, но импортируете функцию из compute_launch
.
Обратите внимание, что в одном есть дефис, а в другом-подчеркивание.
Ответ №2:
Имя файла, которое вы использовали, неверно. Как указано в ОПТОСОЗ 8:
Имена пакетов и модулей
Модули должны иметь короткие имена в нижнем регистре. Подчеркивания можно использовать в имени модуля, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена в нижнем регистре, хотя использование символов подчеркивания не рекомендуется.
Вам нужно переименовать файл и удалить тире. Так что измените его с:
compute-launch.py
Для:
compute_launch.py
То же самое с вашим тестовым файлом test-compute-launch.py
. Импорт должен оставаться прежним:
from compute_launch import days_until_launch