LoginSignup
0
0

More than 5 years have passed since last update.

TravisCIからCasperJS実行

Last updated at Posted at 2014-10-29

ローカルでは npm でインストール

$ npm install -g casperjs
$ casperjs --version
1.1.0-beta3

すでにTravisCI運用している gitリポジトリがある前提で簡単なテストを書いてみる
以下テストコードの元ネタは WEB+DB PRESS Vol.80 にあった CasperJS の紹介記事

tests/hoge_test.coffee
casper.test.begin "ほげでGoogle検索", 8, (test) ->
  casper.start 'https://google.com', ->
    test.comment "Googleトップページ: " + @getCurrentUrl()

    test.assertHttpStatus 200
    test.assertTitleMatch /^Google$/
    test.assertExists 'form[action="/search"]', '検索フォームがある'

    @fill 'form[action="/search"]', q:'ほげ', true

  casper.then ->
    test.comment "検索結果: " + @getCurrentUrl()

    test.assertHttpStatus 200
    test.assertSelectorHasText 'title', 'ほげ'
    test.assertSelectorHasText 'h3.r a', 'ほげ', 'ほげのリンクを含んでいる'

    @click 'h3.r a'

  casper.then ->
    test.comment "最上位の検索結果をクリック: " + @getCurrentUrl()

    test.assertHttpStatus 200
    test.assertSelectorHasText 'title', 'ほげ'

  casper.run ->
    test.done()

http://docs.travis-ci.com/user/installing-dependencies/#Installing-Projects-from-Source
にcasperjsの記述あったのでローカルで入れたcasperjsとバージョン合わせたいのでバージョンの記述だけ変えて travis.yml に以下を追記

travis.yml

before_script:
  - wget https://github.com/n1k0/casperjs/archive/1.1-beta3.tar.gz -O /tmp/casper.tar.gz
  - tar -xvf /tmp/casper.tar.gz
  - export PATH=$PATH:$PWD/casperjs-1.1-beta3/bin/
script
  - casperjs test tests/hoge_test.coffee

git push して TravisCI でジョブが実行されるのを待つ
実行結果は以下な感じで失敗していますね。

Test file: tests/hoge_test.coffee
# ほげでGoogle検索
# Googleトップページ: https://www.google.co.jp/?gfe_rd=cr&ei=O55QVLjkN8_U8gfk8YHwBw
PASS HTTP status code is: 200
PASS Subject is strictly true
PASS 検索フォームがある
# 検索結果: https://www.google.co.jp/search?hl=ja&source=hp&q=ほげ&gbv=2&oq=&gs_l=
PASS HTTP status code is: 200
PASS Find "ほげ" within the selector "title"
PASS ほげのリンクを含んでいる
# 最上位の検索結果をクリック: http://ja.wikipedia.org/wiki/メタ構文変数
PASS HTTP status code is: 200
FAIL Find "ほげ" within the selector "title"
#    type: assertSelectorHasText
#    file: tests/hoge_test.coffee:23
#    code: test.assertHttpStatus 200
#    subject: false
#    selector: "title"
#    text: "ほげ"
#    actualContent: "メタ構文変数 - Wikipedia"
FAIL 8 tests executed in 4.057s, 7 passed, 1 failed, 0 dubious, 0 skipped.

Details for the 1 failed test:

In tests/hoge_test.coffee:23
  ほげでGoogle検索
    assertSelectorHasText: Find "ほげ" within the selector "title"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0