PyCrunch - Exécution intelligente des tests et couverture visuelle du code dans l'IDE

Il y a environ 3 ans, je suis passé du développement C # à Python. Pendant deux ans et demi, j'ai essayé de trouver un outil qui serait similaire à NCrunch en termes de commodité dans le travail quotidien.

À un moment donné, j'ai marqué des tests unitaires et écrit du code en exécutant des tests sur CI.

Mais l'idée ne m'a pas quitté la tête. Je voulais créer un outil qui simplifierait grandement le développement à l'aide de tests, tout en le recommandant à mes collègues et amis.

Six mois de développement, et une utilisation active sur nos propres projets, provoquent le désir de montrer le produit à la communauté.

"Pourquoi en ai-je besoin?":

1. Exécutez automatiquement uniquement les tests affectés par les modifications de code. (Le démarrage se produit en arrière-plan et ne distrait pas de l'écriture de code)

2. Comprendre quels tests spécifiques affectent une ligne de code particulière (il est pratique, par exemple, de suivre le chemin d'exécution du programme et de comprendre quelles branches de code ne sont pas encore couvertes par les tests):



3. Les marqueurs de chiffons rouges visualisent les lignes de code problématiques qui nécessitent une attention particulière:



Techniquement, le projet se compose de deux parties: un moteur et un plugin PyCharm qui communiquent entre eux via des sockets web. Toute la logique est dans le moteur, le plugin ne dessine que l'état interne du moteur. (Il y a toujours la troisième partie - le dossier `front` sur le github , je l'ai utilisé moi-même lors de l'écriture du plugin pour l'IDE)

Téléchargez la version bêta et essayez nos projets. N'oubliez pas de lire les instructions de lancement d'un framework spécifique (PyTest et Django sont actuellement supportés)

Attention: les tests Django, pour accélérer le travail et l'exécution parallèle, s'exécutent sur la même base de données que `manage.py runserver`. Les raisons détaillées de cette décision et des solutions de contournement peuvent être trouvées sur le github.

Démo complète:

Source: https://habr.com/ru/post/fr467679/


All Articles