Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengkonfigurasi `go.testFlags` untuk Ujian Unit Menjalankan dan Menyahpepijat dalam Kod VS?

Bagaimana untuk Mengkonfigurasi `go.testFlags` untuk Ujian Unit Menjalankan dan Menyahpepijat dalam Kod VS?

Patricia Arquette
Lepaskan: 2024-10-27 06:32:29
asal
674 orang telah melayarinya

How to Configure `go.testFlags` for Both Running and Debugging Unit Tests in VS Code?

Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS

Apabila melaksanakan ujian unit dalam Kod Visual Studio (Kod VS), mungkin perlu untuk sertakan bendera tambahan. Sebagai contoh, untuk menyelesaikan ralat tertentu yang dihadapi semasa ujian, bendera -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" mesti dibekalkan.

Untuk menetapkan bendera ini dalam Kod VS, konfigurasi go.testFlags dalam settings.json boleh diubah suai seperti berikut:

<code class="json">"go.testFlags": [
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]</code>
Salin selepas log masuk
Salin selepas log masuk

Walau bagaimanapun, menggunakan konfigurasi ini bersama-sama dengan Test Explorer atau fungsi lensa kod mungkin masih menyebabkan mesej ralat panik : proto: nombor sambungan 1042 telah pun didaftarkan pada mesej google.protobuf.FileOptions.

Perbezaan Antara Konfigurasi Ujian Run dan Nyahpepijat

Dengan membandingkan konfigurasi go.testFlags untuk menjalankan dan ujian nyahpepijat, didapati bahawa perbezaan utama terletak pada pemformatan nilai bendera. Untuk ujian larian, nilai bendera hendaklah disertakan dalam satu set petikan berganda ("), manakala untuk ujian nyahpepijat, nilai bendera hendaklah disertakan dalam petikan tunggal (') dan petikan berganda ("). Perbezaan ini mungkin disebabkan oleh pengehadan atau keperluan dalam rantai alat penyahpepijatan yang digunakan oleh Kod VS.

Konfigurasi Disyorkan

Untuk menampung kedua-dua fungsi ujian jalankan dan nyahpepijat, ia disyorkan untuk menentukan konfigurasi go.testFlags yang berasingan untuk setiap senario. Untuk ujian jalankan, gunakan konfigurasi berikut:

<code class="json">"go.testFlags": [
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]</code>
Salin selepas log masuk
Salin selepas log masuk

Untuk ujian nyahpepijat, gunakan konfigurasi berikut:

<code class="json">"go.testFlags": [
    "-ldflags",
    "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
]</code>
Salin selepas log masuk

Pertimbangan Nyahpepijat Tambahan

Untuk senario penyahpepijatan yang lebih kompleks, mungkin perlu menggunakan penyahpepijat dlv. Dengan menyusun binari ujian dengan bendera tambahan, seperti -gcflags="all=-N -l", dan memulakan sesi dlv tanpa kepala, ia menjadi mungkin untuk menyambungkan editor ke persekitaran penyahpepijatan. Untuk Kod VS, ini boleh dicapai dengan membuka fail launch.json dan mengkonfigurasi konfigurasi nyahpepijat yang serupa dengan yang berikut:

<code class="json">{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Test",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "port": 2345,
            "host": "127.0.0.1",
            "showLog": true,
            "trace": "log"
        }
    ]
}</code>
Salin selepas log masuk

Konfigurasi ini membolehkan penyahpepijatan lancar melalui panel nyahpepijat dalam Kod VS.

Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi `go.testFlags` untuk Ujian Unit Menjalankan dan Menyahpepijat dalam Kod VS?. 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