Saltar al contenido

pasar el argumento de la línea de comando a python-behave

No dudes en compartir nuestra página y códigos con otro, necesitamos tu ayuda para ampliar nuestra comunidad.

Solución:

Las soluciones sugeridas arriba fueron necesarias en el pasado.

se comporta-1.2.5 proporciona un concepto de “datos de usuario” que permite al usuario definir sus datos:

behave -D browser=firefox ...

VER TAMBIÉN: comportarse: datos de usuario

Respuesta obsoleta,
Actualmente se admite a sí mismo como se describe en esta respuesta.

No, no es posible, porque hay un parser que se define en configuration.py archivo, y solo permite opciones definidas del mismo.

Pero si lo desea, puede hacerlo (¡con la ayuda de Monkey Patch!), simplemente agregue su opción igual que otras opciones a esta parser.

Para hacer eso, primero crea un archivo por ejemplo behave_run.py y parche esto parser antes de correr de behave:

from behave import configuration
from behave import __main__

# Adding my wanted option to parser.
configuration.parser.add_argument('-u', '--url', help="Address of your url")

# command that run behave.
__main__.main()

Y ahora si corres python behave_run.py --helppuedes ver tu nuevo url opción:

$ python behave_run.py --help | grep url
  -u URL, --url URL     Address of your url

Ahora, puedes ejecutar esto behave_run.py archivo como behave archivo y pase su argumento de URL también:

$ python behave_run.py --url http://google.com

Y puedes acceder a este valor de url opción con context.config.urlpor ejemplo en environment.py y luego configúrelo para usarlo en otras funciones:

def before_all(context):
    context.browser = webdriver.Firefox()
    context.url = context.config.url

Nota:

si quieres llamar python run_behave.py como run_behave.py desde cualquier lugar, agregue esta línea:

#!/usr/bin/env python

a la primera línea de run_behave.py y cambiar el modo de la misma a un archivo ejecutable con chmod +x run_behave.py y luego copie este archivo en una ubicación de su PATHpor ejemplo en /usr/local/bin con sudo mv run_behave.py /usr/local/bin/run_behave.py

Una alternativa a la gran respuesta de Omid sería establecer variables de entorno antes de que su llamada se comporte, algo así como:

TESTURL="www.abc.com" behave

Hay advertencias para hacer esto y algunos ejemplos de diferentes alcances/permanencia de las variables que estaría definiendo en algunas de las respuestas aquí.

Aquí tienes las comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *