Überprüfen Sie Python-Skripte automatisch mit GitHub + Travis-CI + Pycodestyle

Automatische Überprüfung mit Travis-CI + Pycodestyle

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. ** **.

Was ist Travis-CI?

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.

Was ist Pycodestyle?

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.

Versuchen Sie es mit

Installationsverfahren

Die Vorgehensweise wird auch auf der travis-ci-Tutorial-Seite beschrieben.

  1. Gehen Sie zu Travis-ci.com und verknüpfen Sie mit GitHub mit Konto registrieren.
  2. Klicken Sie auf die Schaltfläche Aktivieren und registrieren Sie das Repository, für das Sie die Funktion verwenden möchten.
  3. Platzieren Sie .travis.yml als root im Repository.
  4. In das Remote-Repository verschieben
  5. Überprüfen Sie das Ergebnis mit travis-ci

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.

Funktionsprüfung

Vor der Korrektur

Versuchen Sie nach Abschluss verschiedener Einstellungen, auf Github zu drücken. Dann erschien das folgende Protokoll im Protokoll von travis-ci. (Auszug)

スクリーンショット 2019-12-02 18.12.20.png

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.

Überarbeitet

Korrigieren Sie das festsitzende Teil und drücken Sie erneut

helloworld.py


print("hello", end="")  # hello
print("world")  # world

スクリーンショット 2019-12-02 18.14.13.png

log


$ pycodestyle .
The command "pycodestyle ." exited with 0.

Ja! Es sieht so aus, als wäre es ein wunderschöner Code.

Zusammenfassung

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).

Referenz

Sakura Knowledge travis-ci Tutorial-Seite

Recommended Posts

Überprüfen Sie Python-Skripte automatisch mit GitHub + Travis-CI + Pycodestyle
Domaincheck mit Python
Überprüfen Sie die Version mit Python
Überprüfen Sie die Python-Abdeckung mit pytest-cov
Verwenden Sie benutzerdefinierte Python-Skripte mit StackStorm
Erstellen Sie automatisch eine Python-Dokumentation mit Sphinx
Überprüfen Sie die installierten Module im Python-Skript
[Python] Einfache Überprüfung des Argumenttyps mit Datenklasse
Überprüfen Sie die Existenz der Datei mit Python
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
Automatische vollständige JCG-Deckverteilung mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
Ich verwende Tox und Python 3.3 mit Travis-CI
Pyinstaller verwandelt Python-Skripte in EXE-Dateien, die unter Windows ausgeführt werden können
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Lesen Sie Daten mit python / netCDF> nc.variables [] / Überprüfen Sie die Datengröße
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Formatieren Sie Python-Code mit Emacs automatisch in PEP8-kompatiblen Code
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Python-Grammatikprüfung
gevent mit travis-ci
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Als offene Daten mithilfe der CKAN-API in Python hochladen und automatisch mit Github-Aktionen verknüpfen
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Fügen Sie Bilder mit Python + α automatisch in Powerpo-Materialien ein
Verwenden Sie Cursur, das in Python automatisch mit sqlite3 geschlossen wird
Geben Sie Azure LUIS-Lerntexte einfach mit Python-Skripten ein
Übersetzen Sie DeepL automatisch mit Python und Selen ins Englische