Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menjalankan dan Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS?
Menjalankan dan Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS
Untuk menjalankan ujian unit dengan bendera dalam Kod VS, seseorang boleh mengubah suai pergi. nilai testFlags dalam fail vscode settings.json. Walau bagaimanapun, isu yang dihadapi di sini ialah konfigurasi berbeza yang diperlukan untuk menjalankan dan menyahpepijat ujian.
Menjalankan Ujian
Untuk menjalankan ujian dengan bendera yang diperlukan, konfigurasi berikut boleh digunakan:
<code class="json">"go.testFlags": [ "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]</code>
Ujian Penyahpepijatan
Untuk ujian penyahpepijatan, konfigurasi hendaklah termasuk petikan tunggal di sekeliling bendera:
<code class="json">"go.testFlags": [ "-ldflags", "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'" ]</code>
Konfigurasi Gabungan
Untuk mengelakkan pertukaran antara konfigurasi, seseorang boleh mencuba konfigurasi gabungan berikut:
<code class="json">"go.testFlags": [ "-ldflags", "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'", "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"" ]</code>
Menggunakan Dlv untuk Nyahpepijat
Sebagai alternatif, seseorang boleh menggunakan dlv untuk menyahpepijat ujian. Untuk menyusun binari ujian dengan pengoptimuman dilumpuhkan:
go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
Mulakan sesi dlv tanpa kepala:
dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path
Sambungkan Kod VS ke sesi dlv dengan mencipta fail launch.json:
<code class="json">{ ... "configurations": [ { "name": "Debug Test", "type": "go", "request": "attach", "mode": "remote", "port": 2345, "host": "127.0.0.1", "showLog": true, "trace": "log" } ] }</code>
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan dan Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!