Rumah >pembangunan bahagian belakang >Golang >Semak: Ujian 'DogFood'.

Semak: Ujian 'DogFood'.

DDD
DDDasal
2025-01-20 08:03:32430semak imbas

Pengawal: Alat Orkestra Aliran Kerja Uji Sendiri

Projek terbaharu saya, Kontroler, ialah alat orkestrasi aliran kerja dengan kelainan unik: ujian kendiri. Ia bukan sahaja mengatur aliran kerja tetapi juga menggunakan keupayaannya sendiri untuk menguji kefungsiannya, satu proses yang dikenali sebagai "dogfooding." Ujian kendiri berterusan ini memastikan alat berfungsi dengan pasti sambil mempertingkatkan dirinya pada masa yang sama.

Mengapa Menguji Kendiri?

Keghairahan saya untuk automasi mendorong keinginan saya untuk mencipta alat yang cekap dan boleh dipercayai. Pengawal bukan sekadar pelari aliran kerja lain; ia direka untuk membuktikan kefungsiannya sendiri tanpa alat ujian luaran. Ujian tekanan terbina dalam ini menyediakan asas yang kukuh, dan memerhati kawalan kualiti yang dikenakan sendiri adalah praktikal dan bermanfaat.

Cara Pengawal Menguji Sendiri

Mencapai ujian kendiri diperlukan mencipta komponen tambahan:

  • Pendengar Webhook GitHub: Mengendalikan webhook masuk, memproses direktori infrastruktur dan menjana DAG dan DAGRun.
  • Pendengar Webhook Pengawal: Mengendalikan acara keluar daripada Kontroler, menyediakan status penyelesaian tugas dan maklumat tugas yang dipautkan.

Direktori .kontrolerci baharu telah ditambahkan pada repositori. Direktori ini menempatkan fail YAML yang mentakrifkan saluran paip DAG/CI. Contoh pembina Go yang mudah:

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

Struktur direktori lengkap tersedia di GitHub: https://www.php.cn/link/6968240043185f65f22097299b865f6b

Apakah Ujiannya?

Ujian saluran paip semasa:

  • Pemasangan Pakej (npm, Go)
  • Pergi Linting
  • Ujian Unit

Ujian ini membina keyakinan dalam sistem, dan pelaksanaan saluran paip CI yang berjaya menyediakan pengesahan hujung ke hujung peruntukan tugas Kontroler dan penjanaan webhook.

UI GitHub memaparkan hasil:

Kontroler:

Ganjaran (dan Cabaran) Dogfooding

Larian saluran paip pertama yang berjaya adalah sangat memuaskan – melihat tanda semak hijau tersebut melebihi jangkaan saya. Kontroler benar-benar digunakan, walaupun hanya oleh saya.

Walau bagaimanapun, ujian kendiri bukan tanpa cabarannya. Isu penyahpepijatan seperti kegagalan pengesahan pelanggan dan ralat yang berkaitan dengan fail sementara terbukti memakan masa. Tetapi, proses dogfood ini mendedahkan dan membolehkan saya menangani kelemahan penting.

Rancangan Masa Depan untuk Pengawal

Dogfooding telah mengenal pasti beberapa bidang untuk penambahbaikan:

  • Rtime PodTemplate Override: Fleksibiliti dipertingkat untuk aliran kerja seperti saluran paip CI.
  • Penciptaan PVC dalam CRD DagRun: Pengurusan sumber yang lebih baik.

Kami akan terus melakukan dogfood Kontroler untuk memperhalusi dan menghasilkan alat tersebut.

Atas ialah kandungan terperinci Semak: Ujian 'DogFood'.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn