"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo ejecutar pruebas unitarias con indicadores personalizados en VS Code?

¿Cómo ejecutar pruebas unitarias con indicadores personalizados en VS Code?

Publicado el 2024-11-18
Navegar:899

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

Ejecución de pruebas unitarias con indicadores personalizados

En Visual Studio Code (VS Code), puede encontrar desafíos al ejecutar y depurar pruebas unitarias cuando Es necesario proporcionar indicadores específicos. Profundicemos en el problema y brindemos una solución integral.

Resumen del problema

Al ejecutar pruebas unitarias desde VS Code, es posible que los usuarios necesiten especificar indicadores personalizados, como: ldflags en el ejemplo proporcionado. Sin embargo, han enfrentado dificultades al integrar estos indicadores en el ejecutor de pruebas de VS Code.

Configuraciones de trabajo

A través de la experimentación, se ha descubierto que se necesitan dos configuraciones separadas para lograr la funcionalidad de ejecutar prueba y depurar prueba:

  • Ejecutar prueba:

    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
  • Prueba de depuración:

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

Problema subyacente

El motivo de las diferentes configuraciones radica en cómo VS Code genera el comando de prueba. Al depurar, VS Code agrega parámetros adicionales al comando, lo que afecta la forma en que se interpretan las banderas. Como tal, las comillas simples en la configuración de depuración son necesarias para garantizar que los indicadores se pasen correctamente.

Posible solución

Un método alternativo sugerido para depurar pruebas complejas es para compilar el binario de prueba e iniciar una sesión de depuración dlv. Esto permite un control más preciso sobre la ejecución de la prueba y la experiencia de depuración.

Uso de dlv para depurar

Los siguientes pasos describen cómo usar dlv para depurar pruebas unitarias:

  1. Compile el binario de prueba con los indicadores necesarios, como:

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
  2. Iniciar una sesión dlv sin cabeza:

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
  3. En VS Code, abra el archivo de configuración de inicio (Depurar: abrir launch. json). Cree una configuración similar a la siguiente:

    {
     "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. Establezca puntos de interrupción en su código.
  5. Ejecute la configuración de depuración (Depurar: abra launch.json) para iniciar la depuración.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3