Создание файла с несколькими командами

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