Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menguji Berbilang Modul Go dalam Direktori Induk?

Bagaimana untuk Menguji Berbilang Modul Go dalam Direktori Induk?

Barbara Streisand
Barbara Streisandasal
2024-10-30 03:19:031078semak imbas

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

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

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>

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!

Kenyataan:
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