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.

Bazel sh_test no encuentra node.

Estoy intentando ejecutar un script que necesita node. Tengo node instalado en mi máquina.
Puedo ejecutar sh_binary con bazel run //:sh_bin y el script ejecuta node sin problemas:

sh_binary(
    name = "sh_bin",
    data = [
    ],
    srcs = [":script.sh"],
)

script.sh:

node -v

bazel run //:sh_bin:

v14.17.6

Ahora quiero convertir esto a sh_test:

sh_test(
    name = "sh_bin",
    data = [
    ],
    srcs = [":script.sh"],
)

pero ahora bazel test //:sh_bin no encuentra node:

node: comando no encontrado

También intenté agregar local = True a la prueba y aún tengo el mismo problema.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar sh_test con node, deberás incluir node como una dependencia en el objetivo sh_test. Puedes hacer esto agregando el binario de node como una dependencia de datos en tu objetivo de esta manera:

    sh_test(
        name = "sh_bin_test",
        data = [
            "//ruta/a/node",
        ],
        srcs = ["script.sh"],
    )
    

    Reemplaza "//path/to/node" con la ruta a tu binario de node.

    Además, es posible que también necesites agregar la regla node_module a tu archivo WORKSPACE para descargar y configurar Node.js para su uso con Bazel. Puedes encontrar más información sobre cómo hacer esto en la documentación de Bazel: https://docs.bazel.build/versions/main/nodejs.html.

    Una vez que hayas agregado la dependencia de node y configurado Node.js para su uso con Bazel, deberías poder ejecutar tus pruebas con:

    bazel test //:sh_bin_test
    

    Esto debería ejecutar el archivo script.sh con node y debe mostrar la versión de node.

Comments are closed.