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 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>'
/home/blaine/myapp/test/application_system_test_case.rb:3:in
<main>'
/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?

Tags:  , ,

Answer

  1. Avatar for 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:

    Webdrivers::BrowserNotFound: Failed to find Chrome binary.
    

    Aquí tienes una solución ingeniosa para el problema:

    1. Abre tu aplicación Rails en VS Code y navega hasta config/environments/test.rb.
    2. Agrega lo siguiente al final del archivo:

    Capybara.register_driver :chrome do |app|
      Capybara::Selenium::Driver.new(app, browser: :chrome,
        options: Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox headless disable-gpu window-size=1920,1080]))
    end
    Capybara.javascript_driver = :chrome
    

    Esto indica a Capybara que utilice Chrome como el navegador para las pruebas de sistema, y especifica algunas opciones. Observa el uso de headless y window-size para especificar una ventana de Chrome sin cabeza.

    1. Guarda el archivo y navega hasta tu terminal en VS Code.
  2. Ejecuta el siguiente comando:

  3. export PATH=$PATH:"/mnt/c/Program\ Files/Google/Chrome/Application/"
    

    Esto agrega la ruta a la ubicación de tu binario de Chrome instalado a la lista de rutas disponibles.

    1. Ejecuta las pruebas de nuevo:
    rake test:system
    

    ¡Y eso es todo! Ahora deberías ver que las pruebas se ejecutan satisfactoriamente.

Comments are closed.