首頁 > 後端開發 > Golang > 如何在 VS Code 中使用自訂標誌執行單元測試?

如何在 VS Code 中使用自訂標誌執行單元測試?

Mary-Kate Olsen
發布: 2024-10-29 11:21:02
原創
226 人瀏覽過

How to Run Unit Tests with Custom Flags in VS Code?

使用自訂標誌執行單元測試

在Visual Studio Code (VS Code) 中,當您執行和偵錯單元測試時,您可能會遇到挑戰需要提供​​特定的標誌。讓我們深入研究該問題並提供全面的解決方案。

問題概述

從 VS Code 執行單元測試時,使用者可能需要指定自訂標誌,例如 -提供的範例中的 ldflags。然而,他們在將這些標誌整合到 VS Code 的測試運行器時遇到了困難。

工作配置

透過實驗,發現需要兩個單獨的配置來同時實現運行測試和調試測試功能:

  • 運行測試:

    <code class="json">"go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]</code>
    登入後複製
  • 調試測試:

    <code class="json">"go.testFlags": [
      "-ldflags",
      "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
    ]</code>
    登入後複製

潛在問題

不同設定的原因在於VS Code 產生測試指令的方式。偵錯時,VS Code 會為指令新增其他參數,這會影響標誌的解釋方式。因此,調試配置中的單引號對於確保正確傳遞標誌是必要的。

可能的解決方案

建議用於調試複雜測試的替代方法是編譯測試二進位並啟動 dlv 偵錯會話。這樣可以更好地控制測試執行和調試體驗。

使用dlv 進行調試

以下步驟概述如何使用dlv 來調試單元測試:

  1. 使用必要的標誌編譯測試二進位文件,例如:

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
    登入後複製
  2. 啟動無頭dlv 會話:

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
    登入後複製
  3. 在VS Code 中,打開啟動設定檔(調試:開啟launch.json)。建立類似以下的配置:

    <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>
    登入後複製
  4. 在程式碼中設定斷點。
  5. 運行調試配置(調試:打開 launch.json)以開始調試。

以上是如何在 VS Code 中使用自訂標誌執行單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板