es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encontrar la ruta a los archivos de código fuente de Java desde la ejecución de pruebas JUnit a través de Bazel.

Me gustaría verificar un archivo de texto en nuestro código base de monorepo a través de pruebas de JUnit. Las pruebas de JUnit se ejecutan mediante el comando bazel test. ¿Cómo puedo configurar Bazel para pasar la ruta del directorio del código fuente (no la ruta del archivo JAR compilado en caché) a mis pruebas unitarias? Esto podría ser a través de argumentos de línea de comandos, variables de entorno, etc.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para configurar Bazel de manera que se pase la ruta del directorio del código fuente a las pruebas de JUnit, puedes utilizar la opción --test_arg al ejecutar el comando bazel test.

    Por ejemplo, si tus pruebas de JUnit se encuentran en un directorio llamado src/test/java dentro de tu código fuente del monorepo, puedes pasar la ruta del directorio como un argumento ejecutando el siguiente comando:

    bazel test --test_arg=src/test/java //ruta/al/paquete:objetivo
    

    Este comando pasará la ruta del directorio src/test/java como un argumento a tus pruebas de JUnit. Puedes reemplazar //ruta/al/paquete:objetivo con el objetivo real que quieres probar.

    Alternativamente, también puedes utilizar variables de entorno para pasar la ruta del directorio a tus pruebas. Puedes configurar una variable de entorno en tu archivo WORKSPACE o en un script de ejecución de Bazel utilizando la opción --action_env.

    Por ejemplo, puedes configurar una variable de entorno llamada TEST_DIR con el valor src/test/java agregando la siguiente línea a tu archivo WORKSPACE:

    # En el archivo WORKSPACE
    exports_files([".bazelrc"])
    http_archive(
       name = "maven",
       ...
    )
    
    # Agrega esta línea para configurar la variable de entorno
    os.environ["TEST_DIR"] = "src/test/java"
    

    Luego, en tu código de prueba de JUnit, puedes acceder a la variable de entorno utilizando el método System.getenv():

    String testDir = System.getenv("TEST_DIR");
    // Utiliza la variable testDir para acceder a los archivos de prueba
    

    En resumen, tanto los argumentos de línea de comandos como las variables de entorno se pueden utilizar para pasar la ruta del directorio del código fuente a tus pruebas de JUnit en Bazel. Elige el método que mejor se adapte a tu flujo de trabajo y requisitos de desarrollo.

Comments are closed.