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