#makefile
#создание файла
Вопрос:
Я создал Makefile, который выглядит как:
test :
python -m pytest -v test
run :
python run.py
Я могу запустить, make run
который выполняет команду правильно. Но когда я запускаю, make test
я вижу: make:
тест «обновлен`.
Однако, если я удалю run
область, то test
все будет работать правильно.
Я не могу понять, чего мне не хватает.
Комментарии:
1. Чтение документации о том, как работает make, решило бы проблему: ваши целевые объекты не имеют зависимостей, поэтому они всегда будут актуальными. Возможно, опишите, чего вы хотите достичь, и сделайте вопрос реальным вопросом.
2. У вас нет зависимостей или условий, из-за которых нужно создавать целевой файл, поэтому все остается актуальным. Вам нужно узнать, что такое makefile и как он работает .
3. Целевые объекты не будут обновляться всегда . Они будут обновлены, если цель существует (в виде файла или каталога на диске). Целевой объект без предварительных условий считается актуальным, если он существует, и устаревшим, если он не существует.
Ответ №1:
Ваш Makefile должен выглядеть следующим образом:
.PHONY: test run
test:
python -m pytest -v test
run:
python run.py
.PHONY
Строка — это способ GNU make сказать, что эти конкретные цели не выдают никаких выходных данных. Если вам нужна дополнительная информация, полезно ознакомиться с документацией по поддельным целям.