[RAILS] Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker

Aperçu

Nous avons résumé comment créer un environnement de test RSpec dans l'environnement de développement docker. Puisque je suis un débutant et que je suis un auto-apprentissage, je pense qu'il y a des erreurs et de meilleures façons de le faire, mais je vous serais reconnaissant de bien vouloir le signaler à ce moment-là.

J'ai fait référence à l'article suivant. J'ai essayé le test du système RSpec avec Selenium Docker on Rails sur Docker.

introduction

Auparavant, j'avais publié un article sur la suppression des erreurs de test de navigateur dans Le développement de Rails à l'aide de Docker ne peut pas exécuter de tests de navigateur. Si vous commentez et utilisez docker-compose pour exécuter Chrome lui-même en tant que l'un des services, On m'a dit qu'il serait facile de tester sans polluer l'environnement Rails, alors je l'ai essayé. Merci de l'avoir signalé!

1. Ajoutez le service Chrome à docker-compose.yml

L'image utilisée est un chrome autonome, qui est celui avec Chrome installé depuis le début.

docker-compose.yml


version: '3'
services:
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/[nom de l'application]
    ports:
      - 3000:3000
    depends_on:
      - db
      - chrome #← Ajouter
    tty: true
    stdin_open: true
  db:
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
 #↓ Ajouter
  chrome:
    image: selenium/standalone-chrome:latest
    ports:
      - 4444:4444
 #↑ Ajouter
volumes:
  db-volume:

2. Introduction de RSpec

Ajouter un joyau de rspec-rails

Gemfile


group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'rspec-rails', '~> 4.0.1'  #ajouter à
  gem 'factory_bot_rails', '~>4.11'
end

Installez gem.

$ docker-compose build

Installation de RSpec

$ docker-compose run web rails g rspec:install

Ensuite, décrivez les paramètres dans "rails_helper.rb" dans le fichier créé par l'installation. Configuré pour utiliser le navigateur du conteneur docker-sélénium lors de l'exécution de RSpec.

/spec/rails_helper.rb


#~
Capybara.register_driver :remote_chrome do |app|
  url = "http://chrome:4444/wd/hub"
  caps = ::Selenium::WebDriver::Remote::Capabilities.chrome(
    "goog:chromeOptions" => {
      "args" => [
        "no-sandbox",
        "headless",
        "disable-gpu",
        "window-size=1680,1050"
      ]
    }
  )
  Capybara::Selenium::Driver.new(app, browser: :remote, url: url, desired_capabilities: caps)
end

#~

RSpec.configure do |config|
  
  config.before(:each, type: :system) do
    driven_by :rack_test
  end

  config.before(:each, type: :system, js: true) do
    driven_by :remote_chrome
    Capybara.server_host = IPSocket.getaddress(Socket.gethostname)
    Capybara.server_port = 4444
    Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}"
  end
#~
end

Enfin, éditez .rspec pour lire les paramètres dans rails_helper.rb.

.rspec


- --require spec_helper
+ --require rails_helper

c'est tout.

Maintenant, écrivons un test et voyons si nous pouvons exécuter le test.

#Quand le conteneur démarre
$ docker-compose exec web rspec [chemin du fichier de test rspec]

J'ai pu vérifier la copie papier du navigateur lorsque le test a échoué.

スクリーンショット 2020-09-22 22.30.01.png

Recommended Posts

Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker
Essayez de créer un environnement de développement Java à l'aide de Docker
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Créer un environnement de développement Wordpress avec Docker
Construction d'un environnement de développement simple Docker + Django
Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)
Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.
Créer un environnement de développement pour Docker + Rails6 + Postgresql
Créez rapidement un environnement de développement WordPress avec Docker
Construction de l'environnement de développement Simple Docker Compose + Django
Créer un environnement de développement pour Docker, Java, vs code
Créez un environnement de développement Docker + Laravel PHP + Vue.js en 5 minutes
J'ai essayé de construire l'environnement petit à petit en utilisant docker
Créer un environnement Node.js avec Docker
Créer un environnement de développement Unity sur docker
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Configurer un environnement Wordpress Docker sans utiliser l'image Worpdress
Créez rapidement un environnement Web à l'aide de Docker
Création d'un environnement de développement Lambda avec Eclipse
Créer un environnement d'exécution WAS à partir de Docker
Créer un environnement de développement Java sur Mac
Création d'un servlet dans l'environnement Liberty
Créer un environnement de développement Ultra96v2 sur Docker 1
Créez un environnement de "développement d'API + vérification d'API à l'aide de Swagger UI" avec Docker
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Ubuntu)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Mac)
Créez un environnement de développement basé sur Doker sur Windows 10 Famille 2020 ver. Partie 2 VS Code devrait rendre l'environnement de développement Docker confortable
Création d'un flux de test sur CircleCI à l'aide de Jib
Améliorer les performances de l'environnement de développement Docker
[Win10] Créer un environnement de développement JSF avec NetBeans
Afficher "Hello World" dans le navigateur à l'aide de Java
Autoriser le développement dans l'environnement Eclipse à l'aide du SDK iPLAss
Afficher "Hello World" dans le navigateur à l'aide de Java
Créer un environnement de développement Spring Boot avec docker
Créer un environnement de développement Java avec VS Code
Créer un environnement de développement basé sur Doker sur Windows10 Famille 2020 ver.Partie 1 Jusqu'à la construction de Docker basé sur WSL2
[Note] Exécutez le programme java dans l'environnement de développement intégré Eclipse-J'ai essayé d'utiliser git
Présentez Docker à l'environnement de développement et à l'environnement de test des applications Rails et MySQL existantes
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker
J'ai essayé d'utiliser une connexion à une base de données dans le développement Android
[Road_node.js_1-1] La voie de la création de l'environnement Node.js Express MySQL à l'aide de Docker
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
J'ai trébuché lorsque j'ai essayé d'utiliser neo4j dans l'environnement jenv, alors prenez note
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker