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 --help
puedes 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.url
por 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 PATH
por 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í.