Rumah >pembangunan bahagian belakang >Golang >Cara menjalankan 'go test' dalam direktori induk bagi berbilang modul go dan mengembalikan bukan sifar apabila ralat
Lihat struktur direktori ini:
/root /hoge go.mod go.sum main.go /test main_test.go /unit sub_test.go /fuga go.mod go.sum main.go /test main_test.go
Anda boleh menjalankan ujian menggunakan kod berikut, tetapi ia akan sentiasa mengembalikan kod keluar 0 jika ia gagal.
find . -name go.mod -execdir go test ./... \;
Adakah terdapat cara untuk mengembalikan nilai bukan sifar jika ia gagal?
Gunakan arahan ini:
find . -name go.mod -execdir go test ./... -- {} +
find
命令手册关于-execdir命令{} +
:
find mengembalikan status keluar bukan sifar jika sebarang panggilan menggunakan borang "+" mengembalikan nilai bukan sifar sebagai status keluar. Jika find menemui ralat, kadangkala ia menyebabkan keluar serta-merta, jadi beberapa arahan yang belum selesai mungkin tidak dijalankan sama sekali.
Tetapi go test
不需要 find
memadankan fail dalam arahan. Malah, ia akan gagal seperti ini:
$ go test ./... go.mod no required module provides package go.mod; to add it: go get go.mod
gagal kerana go.mod
ditafsirkan sebagai pakej.
Penyelesaian ada di {} +
之前添加终止符 --
. Lihat sintaks bendera baris arahan:
Penghuraian bendera berhenti sebelum argumen bukan bendera pertama ("-" ialah argumen bukan bendera) atau selepas penamat "--".
Atas ialah kandungan terperinci Cara menjalankan 'go test' dalam direktori induk bagi berbilang modul go dan mengembalikan bukan sifar apabila ralat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!