Menguji Berbilang Modul dalam Direktori Induk
Apabila bekerja dengan berbilang modul Go dalam direktori induk, ia boleh menjadi mencabar untuk menjalankan ujian merentasi kesemuanya. Pertimbangkan struktur direktori seperti di bawah:
/root /one go.mod go.sum main.go main_test.go /two go.mod go.sum main.go main_test.go
Isu:
Percubaan untuk menjalankan ujian untuk semua modul di bawah direktori induk menggunakan ujian go./.. . mengakibatkan ralat:
go: warning: "./..." matched no packages no packages to test
Penyelesaian:
Arahan ujian go direka untuk berfungsi pada modul tunggal yang berakar umbi dalam direktori semasa atau induknya. Ia tidak menyokong ujian modul bersarang.
Untuk menyelesaikan isu ini, anda perlu menggunakan helah shell. Satu pendekatan ialah menggunakan gabungan perintah find dan xargs, seperti yang dicadangkan oleh ulasan Cerise Limón. Projek selalunya mencipta Makefile atau skrip test.sh untuk mengautomasikan proses ini.
Untuk projek besar dengan banyak modul, pendekatan yang lebih sistematik ialah mengekalkan senarai semua modul (seperti dalam projek go-cloud Google) . Projek itu kemudiannya menggunakan skrip yang melingkari senarai modul dan melaksanakan tugas seperti menjalankan ujian untuk setiap direktori.
Contoh:
Skrip test.sh berikut menunjukkan perkara ini pendekatan:
<code class="sh">#!/bin/bash for module in $(cat allmodules); do cd $module go test cd .. done</code>
Nota:
Anda mungkin tidak memerlukan fail berasingan untuk menyenaraikan modul, tetapi pelaksanaan projek go-cloud memberikan contoh betapa besarnya projek menguruskan ujian berbilang modul.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Berbilang Modul Go dalam Direktori Induk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!