Cara menjalankan 'go test' dalam direktori induk bagi berbilang modul go dan mengembalikan bukan sifar apabila ralat

王林
Lepaskan: 2024-02-05 23:48:03
ke hadapan
767 orang telah melayarinya

如何在多个go模块的父目录中运行“go test”并在出现错误时返回非零

Kandungan soalan

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
Salin selepas log masuk

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 ./... \;
Salin selepas log masuk

Adakah terdapat cara untuk mengembalikan nilai bukan sifar jika ia gagal?


Jawapan Betul


Gunakan arahan ini:

find . -name go.mod -execdir go test ./... -- {} +
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan