Cara Melaksanakan Ujian merentas Pelbagai Pakej Go Secara Berurutan
Apabila melaksanakan ujian untuk berbilang pakej menggunakan ujian go ./..., ia adalah penting untuk mempertimbangkan aspek keselarian. Secara lalai, ujian dijalankan serentak merentas pakej. Walau bagaimanapun, senario tertentu, seperti ujian berasaskan pangkalan data, memerlukan pelaksanaan berurutan.
Dalam contoh yang diberikan, perbalahan pangkalan data timbul disebabkan oleh pelaksanaan ujian selari. Setiap fail ujian mentakrifkan pembolehubah pangkalan data global, yang boleh menyebabkan konflik apabila ujian dijalankan serentak.
Penyelesaian:
Untuk menguatkuasakan pelaksanaan berurutan merentas pakej, gunakan bendera -p tanpa dokumen bersama-sama dengan ujian go seperti berikut:
go test -p 1 ./...
Bendera -p 1 membina dan menguji semua pakej dalam siri, menyelesaikan isu perbalahan.
Penyelesaian Alternatif (Menggunakan Skrip Shell) :
Jika menggunakan bendera -p 1 tidak boleh dilaksanakan, pendekatan berasaskan skrip shell alternatif boleh digunakan. Berikut ialah contoh skrip Bash:
find . -name '*.go' -printf '%h\n' | sort -u | xargs -n1 -P1 go test
Skrip ini menyenaraikan semua subdirektori yang mengandungi fail .go, mengalih keluar pendua dan menjalankan ujian go pada setiap subdirektori secara berurutan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Ujian Go Secara Berurutan merentas Pelbagai Pakej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!