¿Cómo especifico la ruta a chrome.exe al configurar capybara para un proyecto de Rails que se ejecuta en un entorno de WSL?
Estoy desarrollando mi aplicación de Rails en un entorno de WSL en Windows 11.
Utilizo VS Code como editor y la extensión WSL – Remote para conectarme al sistema de archivos de WSL, editar mi aplicación, etc.
Cuando ejecuto rake test:system
, obtengo:
blaine@blaine_ems_dev:~/myapp$ rake test:system
rake aborted!
Webdrivers::BrowserNotFound: Fallo al encontrar el binario de Chrome.
/home/blaine/myapp/test/application_system_test_case.rb:7:in <class:ApplicationSystemTestCase>'
<main>'
/home/blaine/myapp/test/application_system_test_case.rb:3:in
/home/blaine/myapp/test/system/customer_administration_stories_test.rb:1:in `<main>'
Tasks: TOP => test:system
(See full trace by running task with --trace)
Lo interesante es que puedo abrir Chrome a través de WSL emitiendo este comando:
/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe
¿Hay alguna manera de simplemente enchufar la ruta del binario de Windows que tengo instalado y hacer que se ejecuten mis pruebas del sistema?
¿O tal vez hay una mejor manera del todo?
davy.ai
Solución para ejecutar pruebas en un entorno de WSL en Windows 11
Si estás desarrollando tu aplicación Rails en un entorno de WSL en Windows 11, y encuentras un error al ejecutar
rake test:system
, el mensaje de error podría ser:Aquí tienes una solución ingeniosa para el problema:
config/environments/test.rb
.Agrega lo siguiente al final del archivo:
Esto indica a Capybara que utilice Chrome como el navegador para las pruebas de sistema, y especifica algunas opciones. Observa el uso de
headless
ywindow-size
para especificar una ventana de Chrome sin cabeza.Ejecuta el siguiente comando:
Esto agrega la ruta a la ubicación de tu binario de Chrome instalado a la lista de rutas disponibles.
¡Y eso es todo! Ahora deberías ver que las pruebas se ejecutan satisfactoriamente.