Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memberitahu Gazelle bahawa fail go adalah untuk go_default_test dan bukannya go_default_library?

Bagaimana untuk memberitahu Gazelle bahawa fail go adalah untuk go_default_test dan bukannya go_default_library?

WBOY
WBOYke hadapan
2024-02-08 22:24:10457semak imbas

如何告诉瞪羚 go 文件适用于 go_default_test 而不是 go_default_library?

Editor PHP Apple akan memperkenalkan anda cara memberitahu fail Gazelle go untuk memohon kepada go_default_test dan bukannya go_default_library. Dalam bahasa Go, Gazelle ialah alat binaan yang berkuasa untuk mengatur dan membina projek Go. Secara lalai, Gazelle menganggap semua fail yang berakhir dengan _test.go sebagai fail ujian dan memasukkannya dalam go_default_test. Walau bagaimanapun, kadangkala kami ingin mengecualikan fail ujian tertentu daripada go_default_test dan memasukkannya ke dalam sasaran lain, seperti go_default_library. Jadi, bagaimana untuk mencapai ini? Seterusnya, kami akan memberi anda jawapan terperinci.

Kandungan soalan

Saya ada fail embed_testdata.go,旨在用于测试,但本身没有测试(所以我不想用 _test.go 作为后缀)。我如何告诉 gazelle Adakah ia sememangnya sumber ujian dan bukan sumber pengeluaran?

FYI, hanya menambahkannya pada go_default_test dan mengalih keluarnya daripada go_default_library tidak akan berfungsi kerana gazelle akan membuat asal pengeditan Manual itu. . > semuanya ada arahan ngazelle yang sah. go_default_test 并将其从 go_default_library 中删除是行不通的,因为 gazelle 会撤消该手动编辑。

解决方法

https://www.php.cn/link/9877c66299c5b98d81fed12827d87e4b都是有效的 ngazelle

Tiada arahan khusus yang mengatakan ia adalah apa-apa selain

:_test.go 文件视为测试,但有两个可以用于此效果,excludekeep

# gazelle:exclude embed_testdata.go
…
go_test(
    name = "go_default_test",
    srcs = [
        "embed_testdata.go",  # keep
…

Apabila membenamkan sistem fail, anda juga memerlukan sesuatu yang serupa dengan yang berikut:

go_test(
    name = "go_default_test",
…
    embedsrcs = glob(["testdata/**"]), # keep
…

Atas ialah kandungan terperinci Bagaimana untuk memberitahu Gazelle bahawa fail go adalah untuk go_default_test dan bukannya go_default_library?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam