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 activar una cuenta ssh en la función Bash en la prueba BATS?

Como parte de un script de Bash que se prueba utilizando BATS, noté que las pruebas no se terminan cuando ejecuto una función que activa una cuenta de SSH.

Código

La siguiente función asume que existe un par de claves SSH privada y pública en /home//.ssh/. Si lo ejecuto manualmente usando source src/the_bash_script.sh && activate_ssh_account , funciona y dice Identidad agregada: /home/name/.ssh/:

!/bin/bash

Activa/habilita el SSH para

activatesshaccount() {
    gitusername=$1
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/"$gitusername"
}

Sin embargo, cuando se ejecuta desde la prueba con:

!./test/libs/bats/bin/bats

load 'libs/bats-support/load'
load 'libs/bats-assert/load'

https://github.com/bats-core/bats-file#Index-of-all-functions

load 'libs/bats-file/load'

https://github.com/bats-core/bats-assert#usage

load 'assert_utils'

source src/thebashscript.sh

@test "Check if ssh-account is activated after activating it." {
    activatesshaccount "somegitusername"
    assertequal "Something" "Somethingelse"
}

Se cuelga indefinidamente.

Pregunta

¿Cómo puedo activar una cuenta de SSH sin hacer que las pruebas de BATS se cuelguen indefinidamente?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el comando ssh-agent para iniciar un proceso en segundo plano que gestionará sus claves SSH. Esto le permitirá activar la cuenta SSH sin causar que las pruebas BATS se cuelguen indefinidamente. Para hacer esto, puede agregar la siguiente línea a su script de Bash:


    eval "$(ssh-agent -s)"

    Esto iniciará el proceso ssh-agent en segundo plano y le permitirá activar la cuenta SSH sin causar que las pruebas BATS se cuelguen indefinidamente.

Comments are closed.