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>
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>
Untuk ujian nyahpepijat, gunakan konfigurasi berikut:
<code class="json">"go.testFlags": [ "-ldflags", "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'" ]</code>
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>
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!