¿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/
!/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?
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.