"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como executar testes de unidade com sinalizadores personalizados no código VS?

Como executar testes de unidade com sinalizadores personalizados no código VS?

Publicado em 2024-11-18
Navegar:746

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

Executando testes de unidade com sinalizadores personalizados

No Visual Studio Code (VS Code), você pode encontrar desafios ao executar e depurar testes de unidade ao precisa fornecer sinalizadores específicos. Vamos nos aprofundar no problema e fornecer uma solução abrangente.

Visão geral do problema

Ao executar testes de unidade no VS Code, os usuários podem precisar especificar sinalizadores personalizados, como - ldflags no exemplo fornecido. No entanto, eles enfrentaram dificuldades ao integrar esses sinalizadores no executor de testes do VS Code.

Configurações de trabalho

Por meio de experimentação, descobriu-se que duas configurações separadas são necessárias para alcançar a funcionalidade de teste de execução e teste de depuração:

  • Executar teste:

    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
  • Teste de depuração:

    "go.testFlags": [
      "-ldflags",
      "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
    ]

Problema subjacente

O motivo das diferentes configurações está em como o VS Code gera o comando de teste. Ao depurar, o VS Code adiciona parâmetros adicionais ao comando, o que afeta a forma como os sinalizadores são interpretados. Como tal, as aspas simples na configuração de depuração são necessárias para garantir que os sinalizadores sejam passados ​​corretamente.

Solução possível

Um método alternativo sugerido para depuração de testes complexos é para compilar o binário de teste e iniciar uma sessão de depuração dlv. Isso permite um controle mais preciso sobre a execução do teste e a experiência de depuração.

Usando dlv para depuração

As etapas a seguir descrevem como usar dlv para depuração de testes de unidade:

  1. Compile o binário de teste com os sinalizadores necessários, como:

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
  2. Iniciar uma sessão dlv sem cabeça:

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
  3. No VS Code, abra o arquivo de configuração de inicialização (Debug: Abra launch.json). Crie uma configuração semelhante a esta:

    {
     "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"
         }
     ]
    }
  4. Defina pontos de interrupção em seu código.
  5. Execute a configuração de depuração (Debug: Open launch.json) para iniciar a depuração.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3