Essayez CI le code python poussé sur GitHub.

Système de génération d'énergie solaire DIY permet de tracer et de vérifier l'état de la production d'électricité, mais en coulisses, un logiciel écrit dans un langage de programmation appelé Python Ça marche.

Publié sur PyPI, veuillez donc l'utiliser. Vous pouvez le trouver comme ceci ↓.

$ pip search tsmppt60-driver
tsmppt60-driver           - Python module to get status of your solar charge controller TS-MPPT-60.

… Vous devez obtenir TS-MPPT-60 à l'avance.

Lors de la publication sur PyPI, j'ai pensé que ce serait mal si je n'écrivais pas le test sérieusement, alors j'ai essayé d'utiliser unittest, doctest, nose, MiniMock.

Les détails individuels seront à nouveau activés, cette fois sur CI (Continuous Integration), matériau d'intégration continue.

Il existe Jenkins en tant qu'outil CI célèbre, mais comme le pilote tsmppt60 que j'ai créé cette fois-ci est poussé comme OSS sur github, j'ai utilisé le populaire TravisCI. ..

Lors de l'utilisation de TravisCI, le flux global est le suivant.

  1. Enregistrement du compte TravisCI (peut être lié au compte GitHub)
  2. Sélectionnez le référentiel GitHub cible CI sur l'écran des paramètres Web Travis CI.
  3. Ajoutez le fichier .travis.yml configuré selon l'aide TravisCI au référentiel GitHub

Si vous avez un compte github, vous pouvez raccorder le push à github et le construire et le tester automatiquement avec une simple opération GUI sur le navigateur et ![Build Status](https: // travis-ci. Vous pouvez également afficher des badges comme org / dodo5522 / tsmppt60_driver.svg) dans le README.

La configuration est très simple comme ci-dessous.

Tout d'abord, accédez à TravisCI et connectez-vous avec Sign In With Git Hub.

Ensuite, la coopération avec GitHub étant déjà terminée, activez le référentiel que vous souhaitez CI.

Dans l'exemple ci-dessous, le CI du référentiel domotique est activé.

Cliquez sur la marque d'engrenage dans l'image ci-dessus pour voir les paramètres détaillés et l'historique de construction.

Peut-être qu'il est configuré pour construire avec push comme déclencheur par défaut.

Tout ce que vous avez à faire est d'ajouter et de pousser l'ensemble de fichiers .travis.yml selon Aide Travis CI dans le référentiel GitHub.

Puisque tsmppt60-driver est un package python, les paramètres pour python sont les suivants.

language: python
python:
  - "2.7"
  - "3.2"
  - "3.3"
  - "3.4"
  - "3.5"
  # does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa
  # maintainers to fix their pypy-dev package.
  - "pypy"
# command to install dependencies
install:
  - pip install .
  - pip install -r requirements.txt -r test-requirements.txt
# command to run tests
script: nosetests

Je garde une trace des versions principales et récentes de Python, et pip installe les packages nécessaires avant de construire et de tester.

requirements.txt décrit les packages dépendants requis pour le fonctionnement de tsmppt60-driver et test-requirements.txt décrit les packages dépendants requis pour exécuter le test.

$ cat requirements.txt
requests>=2.8.0
$ cat test-requirements.txt
MiniMock>=1.2.8
nose
coverage

Si vous mettez ces .travis.yml, requirements.txt, test-requirements.txt à la racine du référentiel tsmppt60-driver et git add / commit / push, vous verrez le résultat comme ci-dessous.

Il ne vous avertit pas lorsque la compilation ou le test continue de réussir, mais une fois qu'il échoue, il vous envoie comme Jenkins un e-mail indiquant qu'il a échoué.

Vous pouvez également trouver comment afficher le badge d'état de construction dans GitHub README sur TravisCI Help (https://docs.travis-ci.com/user/status-images/).

L'affichage de l'état de construction du référentiel privé indique que l'URL du badge contient un jeton de sécurité, donc soyez prudent, mais cette fois le référentiel est traité comme public, il n'y a donc pas de problème.

Maintenant que l'environnement de test est en place, il est temps de continuer à mesurer la couverture du code de test (http://blog.rinka-blossom.com/githubnipushji-minopythonkodowo/).

Recommended Posts

Essayez CI le code python poussé sur GitHub.
Python: essayez d'utiliser l'interface utilisateur sur Pythonista 3 sur iPad
Essayez le SDK Python LINE Pay
Essayez d'utiliser le module Python Cmd
[Python] Lire le code source de Flask
Sakura utilisant Python sur Internet
Installez rapidement OpenCV2.4 (+ python) sur OS X et essayez l'exemple
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
Déguisez l'herbe sur GitHub et essayez de devenir ingénieur.
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Essayez d'utiliser l'API Wunderlist en Python
Exécuter du code Python sur C ++ (en utilisant Boost.Python)
Découvrez les fonctions les plus yabe sur github
Essayez d'utiliser l'API Kraken avec Python
Essayez Python
[Python3] Réécrire l'objet code de la fonction
[Python] Essayez pydash de la version Python de lodash
Télécharger des fichiers sur le Web avec Python
Cloner le référentiel github sur le notebook Jupyter
Essayez d'écrire du code python pour générer du code go - Essayez de porter JSON-to-Go et ainsi de suite
Python amateur tente de résumer la liste ①
Exécutez le code Python sur A2019 Community Edition
[Python] Récupère le code de caractère du fichier
Obtenir la liste de codes EDINET en Python
[Python] Une barre de progression sur le terminal
python setup.py tester le code en utilisant le multiprocessus
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (code Python)
Je suis tombé sur un code de caractère lors de la conversion de CSV en JSON avec Python
[Python] Lire le code source de Bottle Part 2
Essai du parseur d'emacs-org orgparse pour python
Afficher rapidement le code QR sur la ligne de commande
Essayez de résoudre le problème de l'héritage de classe Python
Essayez d'utiliser le code QR avec Raspberry Pi
Essayez de résoudre le diagramme homme-machine avec Python
Essayez d'utiliser l'API BitFlyer Ligntning en Python
Essayez d'utiliser le framework Web Python Tornado Partie 1
[Python] Lire le code source de Bottle Part 1
Essayez Progate Free Edition [Python I]
Construire plusieurs environnements Python sur le même système
Essayez de travailler avec Mongo en Python sur Mac
Introduction à Python avec Atom (en route)
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
Essayez d'utiliser le module de collections (ChainMap) de python3
Code pour vérifier le fonctionnement de Python Matplot lib
Au moment de la mise à jour de python avec ubuntu
Jusqu'à ce que la documentation Sphinx soit publiée sur GitHub
Convertir le code de caractère du fichier avec Python3
Essayez d'utiliser le framework Web Python Tornado Partie 2
Essayez d'implémenter la méthode Monte Carlo en Python
Essayez d'accéder à l'API YQL directement depuis Python 3
Essayez d'importer des données MLB sur Mac et Python
Essayez d'utiliser l'API DropBox Core avec Python
Python sur Windows
twitter avec python3