[PYTHON] Führen Sie den Komponententest aus, sobald Sie die Datei speichern

Überblick

Bisher wurde beim Codieren mit vim der gleiche Vorgang ausgeführt, indem "** Code schreiben, → Komponententest ausführen **" wiederholt wurde. Der Komponententest wird jedoch ausgeführt, sobald die Datei gespeichert wird. Ich habe es möglich gemacht.

Speichern Sie es, indem Sie es in einem anderen Bereich anzeigen, z. B. in einem anderen tmux, wie im obigen Screenshot gezeigt. Sie können das Ausführungsergebnis des Komponententests in dem Moment sehen, in dem Sie dies tun.

Quellcode

Gist

qiita.rb


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import datetime
import time
import os
from stat import *
import commands
import fnmatch
 
 
def watch(dir, command, extension):
    timestamp = time.mktime(datetime.datetime.now().utctimetuple())
    while True:
 
        for root, dirnames, filenames in os.walk(dir):
            for filename in fnmatch.filter(filenames, '*' + extension):
                file = os.path.join(root, filename)
                file_timestamp = os.stat(file)[ST_MTIME]
                if timestamp < file_timestamp:
                    timestamp = file_timestamp
                    print "Executing..."
                    print(commands.getoutput(command))
                    break
        #Warten Sie 100 Millisekunden
        time.sleep(0.1)
 
def help():
    print(u'Das erste Argument ist das zu überwachende Verzeichnis.')
    print(u'Das zweite Argument ist ein Befehl, der ausgeführt werden soll, wenn sich die überwachte Datei ändert.')
    print(u'Das dritte Argument ist die Erweiterung')
    print(u'Beispiel: % dirwatch . \'phpunit\' \'php\'')
    print(u'Im Beispiel wird Hallo angezeigt, wenn sich die Datei im aktuellen Verzeichnis ändert.')
 
if __name__ == '__main__':
    #Zeigen Sie die Hilfe an, wenn nicht genügend Argumente vorhanden sind.
    if 4 > len(sys.argv):
        help()
    else:
        watch(sys.argv[1], sys.argv[2], sys.argv[3])

Beispiel für die Installation

% wget https://gist.github.com/matsubo/4992894/raw/36c0c4a08953effabfa2731ccd5186f2d6c92347/dirwatch.py
% chmod 755 dirwatch.py

Streit

% ./dirwatch.py [Zielverzeichnis für die Dateiüberwachung] [Befehl zum Ausführen, wenn die Datei geändert wird] [Überwachte Dateierweiterung]

Ausführungsbeispiel

% ./dirwatch.py /path/to/sourcecode/ phpunit php
% ./dirwatch.py /path/to/sourcecode/ "phpunit Tests/UserRegistrationTest.php" php

Wie unten gezeigt, wird der Komponententest ausgeführt, sobald die Datei gespeichert wird. Es ist sehr gut, zuerst mit Test zu entwickeln, das Fenster mit Bildschirm oder tmux zu teilen und es die ganze Zeit anzuzeigen. phpunitの例

Recommended Posts

Führen Sie den Komponententest aus, sobald Sie die Datei speichern
Können Sie diese Datei löschen?
Speichern Sie die Binärdatei in Python
Führen Sie beim Speichern von Dateien automatisch Tests aus
Rufen Sie den Pfad zur systemd-Einheitendatei ab
Bis Sie Caffe installieren und das Beispiel ausführen
Bis das Changefinder-Sample auf Python läuft
Speichern Sie das Objekt in einer Datei mit pickle
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Führen Sie selektiv Tests durch
Python-Unit-Test
Bis Sie Gauge installieren und das offizielle Beispiel ausführen