Help us understand the problem. What is going on with this article?

Travis CI で GUI を利用しない Firefox を使ってエンドツーエンドテストをする

More than 5 years have passed since last update.

概要

Travis CI で GUI を利用しない Firefox を使ってエンドツーエンドテストする方法を調べました。

動作試験

.travis.yml では before_script で関連する gem のインストールと Xvfb の起動を行います。ここでは ブラウザの自動操作に watir-webdriver を使います。Xvfb の起動方法は Travis CI のドキュメントに従い、下記のようにします。

travis.yml
language: ruby
before_script:
  - "gem install rspec"
  - "gem install headless"
  - "gem install watir-webdriver"
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
script:
  - "rspec"

下記は Travis CI で Firefox を起動して Qiita のトップページのタイトルが正しいか確かめるテストです。(Travis CI から Qiita にアクセスするとタイトルが英語になるようです。)

spec/e2e_spec.rb
# encoding: utf-8

require 'watir-webdriver'
require 'headless'

describe "qiita.com" do
  before do
    @headless = Headless.new
    @headless.start
    @browser = Watir::Browser.new :ff
  end
  it "has valid title" do
    @browser.goto "http://qiita.com"
    expect(@browser.title).to eq("Qiita - A technical knowledge sharing platform for programmers.")
  end
  after do
    @browser.quit
    @headless.destroy
  end
end

Travis CI にてテストがパスすることが確認できました。

$ rspec
.
Finished in 30.14 seconds (files took 0.24446 seconds to load)
1 example, 0 failures

上記の動作試験を行った GitHub のリポジトリです。
https://github.com/suzuki86/sample-of-using-headless-firefox-on-travisci

Travis CI での実行結果です。
https://travis-ci.org/suzuki86/sample-of-using-headless-firefox-on-travisci

suzuki86
ソフトウェアエンジニアです。 最近では、企業のテックブログの新着記事を横断的に見られるサービスを作りました。 https://techpost.wbsrv.net/
https://suzuki86.com
timers
グローバルな家族アプリFammを開発運営しているスタートアップです。
https://timers-inc.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away