[PYTHON] Exécutez le test unitaire au moment où vous enregistrez le fichier

Aperçu

Jusqu'à présent, lors du codage avec vim, la même opération était effectuée en répétant "** Ecrire le code, → Exécuter le test unitaire **", mais le test unitaire est exécuté au moment de l'enregistrement du fichier. Je l'ai rendu possible.

Enregistrez-le en l'affichant dans un autre volet tel qu'un autre tmux comme indiqué dans la capture d'écran ci-dessus. Vous pouvez voir le résultat de l'exécution du test unitaire pour le moment.

Code source

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
        #Attendez 100 millisecondes
        time.sleep(0.1)
 
def help():
    print(u'Le premier argument est le répertoire à surveiller.')
    print(u'Le deuxième argument est une commande à exécuter en cas de modification du fichier surveillé.')
    print(u'Le troisième argument est l'extension')
    print(u'Exemple: % dirwatch . \'phpunit\' \'php\'')
    print(u'Dans l'exemple, bonjour s'affiche en cas de modification du fichier dans le répertoire courant.')
 
if __name__ == '__main__':
    #Afficher l'aide lorsqu'il n'y a pas assez d'arguments.
    if 4 > len(sys.argv):
        help()
    else:
        watch(sys.argv[1], sys.argv[2], sys.argv[3])

Exemple d'installation

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

argument

% ./dirwatch.py [Répertoire de destination de la surveillance des fichiers] [Commande à exécuter lorsque le fichier est modifié] [Extension de fichier surveillée]

Exemple d'exécution

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

Comme indiqué ci-dessous, le test unitaire est exécuté au moment où le fichier est enregistré. Il est très bon de développer d'abord avec test, de diviser la fenêtre avec screen ou tmux et de l'afficher tout le temps. phpunitの例

Recommended Posts

Exécutez le test unitaire au moment où vous enregistrez le fichier
Pouvez-vous supprimer ce fichier?
Enregistrez le fichier binaire en Python
Exécuter automatiquement des tests lors de l'enregistrement des fichiers
Obtenez le chemin d'accès au fichier d'unité systemd
Jusqu'à ce que vous installiez Caffe et exécutiez l'exemple
Jusqu'à ce que l'exemple de changefinder s'exécute sur python
Enregistrer l'objet dans un fichier avec pickle
[Python] Vous pouvez enregistrer un objet dans un fichier en utilisant le module pickle.
Exécuter des tests de manière sélective
Test unitaire Python
Jusqu'à ce que vous installiez Gauge et exécutiez l'exemple officiel