Dieser Artikel ist der dritte Tag des DSL-Adventskalenders.
Der Inhalt ist wie der Versuch, automatisch zu überprüfen, ob der Python-Code PEP8 entspricht, wenn Sie mit der Funktion travis-ci in das Repository pushen. Ich hatte den Eindruck, dass es vorher keinen japanischen Artikel gab, der versuchte, so etwas zu tun, also beschloss ich, ihn diesmal zu schreiben. ** Bitte beachten Sie, dass dies eine automatische Überprüfung des Pycodestyles ist und Push oder Merge nicht automatisch ablehnt. ** **.
Sakura Knowledge ist leicht zu verstehen. Der folgende Auszug kann mit dem mit GitHub verknüpften automatischen Testausführungsdienst problemlos ausgeführt werden.
Es ist bequem.
Es gibt eine Python-Code-Konvention namens PEP8 und eine Bibliothek, die prüft, ob der Code dieser Konvention entspricht. Für detaillierte Diskussionen über die Ausgabeergebnisse von PEP8 und Pycodestyle denke ich, dass andere Artikel hilfreich sein werden.
Die Vorgehensweise wird auch auf der travis-ci-Tutorial-Seite beschrieben.
.travis.yml
als root im Repository.Hier ist eine kurze Zusammenfassung.
.travis.yml Beschreiben Sie, welche Art von Verarbeitung im Inhalt von ".travis.yml" ausgeführt werden soll. Dieses Mal möchte ich den Code mit pycodestyle des Python-Pakets überprüfen, damit er wie folgt aussieht
.tavis.yml
language: python3
cache: pip
sudo: false
install:
- pip install pycodestyle
script:
- pycodestyle .
sample code Überprüfen Sie mit dem einfachen Code unten, wie es funktioniert.
helloworld.py
print("hello",end="") # hello
print("world") # world
Übrigens, in diesem Code, Zeile 1: Nach dem "," ist kein Leerzeichen. 2. Zeile: Im Kommentartext steht nur ein Leerzeichen vor dem "#" (richtig zwei). Entspricht nicht PEP8, daher erkennen Sie es bitte automatisch.
Versuchen Sie nach Abschluss verschiedener Einstellungen, auf Github zu drücken. Dann erschien das folgende Protokoll im Protokoll von travis-ci. (Auszug)
log
$ pycodestyle .
./helloworld.py:1:14: E231 missing whitespace after ','
./helloworld.py:2:15: E261 at least two spaces before inline comment
The command "pycodestyle ." exited with 1.
store build cache
Done. Your build exited with 1.
Wenn Sie drücken, beginnt die Pycodestyle-Prüfung. Wenn es abgefangen wird, wird es mit dem Statuscode 1 zurückgegeben, so dass es den Anschein hat, als sei es ein Build-Faild. Immerhin scheinen zwei Punkte nicht mit PEP8 übereinzustimmen. korrigieren.
Korrigieren Sie das festsitzende Teil und drücken Sie erneut
helloworld.py
print("hello", end="") # hello
print("world") # world
log
$ pycodestyle .
The command "pycodestyle ." exited with 0.
Ja! Es sieht so aus, als wäre es ein wunderschöner Code.
Es wird jetzt automatisch jedes Mal überprüft, wenn der Python-Code mit travis-ci und pycodestyle aktualisiert wird. Wenn Sie das Problem automatisch beheben möchten, kann die Verwendung eines Moduls wie autopep8 die Codewartung vereinfachen. Wenn Sie selbst entwickeln, ist Ihnen die Sauberkeit des Codes vielleicht nicht so wichtig, aber in Wirklichkeit können Sie das nicht sagen. Ich denke, Sie sollten sich darum kümmern (Boomerang).
Sakura Knowledge travis-ci Tutorial-Seite
Recommended Posts