Bagaimana untuk Menguji Berbilang Modul Go dalam Direktori Induk?

Barbara Streisand
Lepaskan: 2024-10-30 03:19:03
asal
955 orang telah melayarinya

How to Test Multiple Go Modules in a Parent Directory?

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

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

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

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!