Maison > développement back-end > Golang > Vérifier : Test « DogFood »

Vérifier : Test « DogFood »

DDD
Libérer: 2025-01-20 08:03:32
original
429 Les gens l'ont consulté

Kontroler : un outil d'orchestration de flux de travail d'auto-test

Mon dernier projet, Kontroler, est un outil d'orchestration de flux de travail avec une touche unique : l'auto-test. Il orchestre non seulement les flux de travail, mais utilise également ses propres capacités pour tester ses fonctionnalités, un processus connu sous le nom de « dogfooding ». Cet auto-test continu garantit que l'outil fonctionne de manière fiable tout en s'améliorant.

Pourquoi l'autotest ?

Ma passion pour l'automatisation anime mon envie de créer des outils efficaces et fiables. Kontroler n'est pas simplement un autre exécuteur de flux de travail ; il est conçu pour prouver sa propre fonctionnalité sans outils de test externes. Ce test de résistance intégré fournit une base solide, et observer le contrôle qualité auto-imposé est à la fois pratique et gratifiant.

Comment Kontroler se teste

La réalisation des autotests nécessitait la création de composants supplémentaires :

  • GitHub Webhook Listener : Gère les webhooks entrants, traite le répertoire d'infrastructure et génère le DAG et le DAGRun.
  • Kontroler Webhook Listener : Gère les événements sortants de Kontroler, fournissant l'état d'achèvement des tâches et les informations sur les tâches liées.

Un nouveau répertoire .kontrolerci a été ajouté au référentiel. Ce répertoire héberge les fichiers YAML définissant le pipeline DAG/CI. Un exemple simple de constructeur Go :

<code>build-server:
  image: golang:1.23.5-bullseye
  script: |
    echo "Navigating to server directory"
    cd server
    go mod tidy
    echo "Building server application"
    go build -o main cmd/main.go</code>
Copier après la connexion

La structure complète des répertoires est disponible sur GitHub : https://www.php.cn/link/6968240043185f65f22097299b865f6b

Que teste-t-il ?

Les tests du pipeline en cours :

  • Installation du package (npm, Go)
  • Allez pelucher
  • Tests unitaires

Ces tests renforcent la confiance dans le système, et l'exécution réussie du pipeline CI fournit une vérification de bout en bout de l'allocation des tâches de Kontroler et de la génération de webhooks.

L'interface utilisateur de GitHub affiche les résultats :

Kontroler:

Les récompenses (et les défis) du Dogfooding

La première exécution réussie du pipeline a été incroyablement satisfaisante : voir ces coches vertes a dépassé mes attentes. Kontroler était vraiment utilisé, ne serait-ce que par moi.

Cependant, l’autotest n’était pas sans défis. Les problèmes de débogage tels que les échecs d’authentification des clients et les erreurs liées aux fichiers temporaires se sont avérés chronophages. Mais ce processus de dogfooding a révélé et m'a permis de corriger des défauts cruciaux.

Projets futurs pour Kontroler

Dogfooding a identifié plusieurs axes d'amélioration :

  • Runtime PodTemplate Override : flexibilité améliorée pour les flux de travail tels que les pipelines CI.
  • Création PVC au sein du DagRun CRD : Gestion améliorée des ressources.

Nous continuerons à utiliser Dogfood Kontroler pour affiner et produire davantage l'outil.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal