Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menjalankan dan Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS?

Bagaimana untuk Menjalankan dan Menyahpepijat Ujian Unit dengan Bendera dalam Kod VS?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 17:37:31494semak imbas

How to Run and Debug Unit Tests with Flags in VS Code?

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&quot;"  
]</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!

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