Menjalankan ujian go dalam Direktori Induk Berbilang Modul Go
Apabila menghadapi struktur direktori dengan berbilang modul Go yang terletak dalam subdirektori, jalankan ujian go daripada direktori induk boleh menimbulkan cabaran. Coretan kod berikut menunjukkan isu ini:
/root /one go.mod go.sum main.go main_test.go /two go.mod go.sum main.go main_test.go
Menjalankan ujian go./... daripada direktori akar akan mengakibatkan ralat:
go: warning: "./..." matched no packages no packages to test
Ini berlaku kerana ujian go ialah direka khusus untuk beroperasi pada satu modul yang terletak sama ada dalam direktori semasa atau induknya. Ia tidak menyokong modul bersarang atau melaksanakan ujian daripada direktori induk bagi berbilang modul.
Untuk menyelesaikan masalah ini, penyelesaian adalah dengan mencipta skrip shell atau menggunakan utiliti seperti find untuk menavigasi ke setiap modul individu dan melaksanakan go ujian dalam direktori tersebut. Contohnya:
cd /root/one go test . cd /root/two go test .
Sebagai alternatif, sesetengah projek mungkin menggunakan Makefile atau skrip test.sh untuk mengautomasikan proses ini. Sebagai contoh, skrip test.sh dalam projek hipotetikal berikut melingkari senarai modul dan menjalankan ujian go untuk setiap direktori:
#!/bin/bash modules="one two three" for module in $modules; do cd $module go test . cd .. done
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan `go test` dalam Direktori Induk bagi Modul Berbilang Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!