[PYTHON] Einstellungen zum Ausführen eines Tests jedes Mal, wenn Sie eine Datei mit watchmedo (watchdog) im Editor speichern

Wenn Sie eine Aufgabe jedes Mal ausführen möchten, wenn Sie eine Datei mit einem Editor speichern, können Sie Guard for Ruby und Grunt verwenden, wenn Sie JS schreiben, aber diese Art von Tool, wenn Sie Python-Code schreiben Ich möchte auch etwas von Python verwenden. Hier wird watchdog verwendet.

Eingeführt

pip install watchdog

Anschließend können Sie den Befehl watchmedo des Befehlszeilenprogramms verwenden. Wenn Sie Dateisystemereignisse überwachen und bestimmte Befehle ausführen möchten, sieht dies folgendermaßen aus

watchmedo shell-command --patterns="*.py" --recursive --command='echo "${watch_src_path} is saved"' .

vim Einstellungen

Wie Sie in der Readme-Datei von watchdog sehen können, kann ich bei Verwendung von vim auf dem MacOSX + -Terminal keine Dateisystemereignisse abrufen. Es ist eine gute Idee, die folgenden vim-Einstellungen zu ändern, damit Sie keine Auslagerungsdatei erstellen. Meine .vimrc ist wie folgt. Oder wenn Sie die Datei . *. Swp überwachen, funktioniert sie.

.vimrc


let OSTYPE = system('uname')
if OSTYPE == "Darwin\n"
    set noswapfile
    set nowritebackup
endif

Erstellen Sie eine Überwachungsaufgabe, um den Test auszuführen

Wenn Sie beispielsweise eine Testaufgabe in Ihrem Makefile haben und eine Überwachungsaufgabe hinzufügen möchten, die die Testaufgabe beim Speichern der Datei ausführt.

Makefile


watch:
	#Unter dem App-Verzeichnis*.Überwachen Sie Ereignisse in py-Dateien und führen Sie make test aus
	@echo Watch file changes and run test
	watchmedo shell-command --interval=5 --patterns="*.py" -R -W -D --command='make test' app

test:
	# (Beispiel)Führen Sie Django-Tests durch
	python app/manage.py test;

Sie benötigen eine Doppelstart-Verhinderungsoption, um zu verhindern, dass mehrere Tests ausgeführt werden, wenn mehrere Dateisystemereignisse übersprungen werden.

Recommended Posts

Einstellungen zum Ausführen eines Tests jedes Mal, wenn Sie eine Datei mit watchmedo (watchdog) im Editor speichern
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Speichern Sie die Einstellungsbedingungen als CSV-Datei mit UDF Manager mit OCTA
Abrufen des Dateinamens in einem Ordner mithilfe von glob
Registrieren Sie zum ersten Mal eine Aufgabe in cron
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Speichern Sie das Pystan-Modell und erhalten Sie eine Pickle-Datei
Wenn Sie neu in der Programmierung sind, warum machen Sie nicht vorerst ein "Spiel"? Die Geschichte
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Speichern Sie die Binärdatei in Python
Speichern Sie YAML-formatierte Dateien mit PyYAML
Bis Sie die Silbermedaille (Top 3%) in dem Wettbewerb gewinnen, an dem Sie innerhalb eines Monats zum ersten Mal in der Datenwissenschaft teilgenommen haben!
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Ändern Sie die Liste in der for-Anweisung
MongoDB mit Python zum ersten Mal
[IOS] Ändern Sie die Anzeigezeit für jedes Bild der GIF-Animation in Pythonista3.
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
Überprüfen Sie mit einem Test, wie oft die Abfrage (SQL) in Django ausgelöst wurde
Speichern Sie das numpy-Array mithilfe des Wave-Moduls in einer WAV-Datei
Ersetzen Sie die eindeutige Darstellung der gelesenen Textdatei durch eine Beschriftung (mit GiNZA).
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
Es ist okay, zum ersten Mal teilzunehmen! Ein Hackason-Starter-Kit, das Sie "vor" der Teilnahme am Hackason vorbereiten möchten!