Cucumberの結果をSinatraでホスティング、APIステータスサイトを手軽に実現
この記事は最終更新から1年以上経過しています。 気をつけてね。
githubのステータスサイトなど、WebでAPIを提供するプロバイダならユーザから各機能が正常なのかをお知らせしたいですね。
何かの機能がそのふるまいをできているかどうか? これはCucumberの出番ですかね。
最新結果がいつでも誰にでも分かるようになっていればベストですが、そのためのサーバを立てて管理して・・・となると面倒極まりない。
スケジューラもあることだしHerokuにやってもらうか。
今回のサンプルはこちらにおいてます > https://github.com/higanworks/heroku_cuucmber_example
概要
- cucumberのhtml出力を定期的に実行する
- 結果のhtmlをherokuでホスティングする
Gemfileの作成
Sinatra
、Cucumber
など関連するGemsを入れるためGemfile
を作成します、Bundleしておきましょう。Gemfile.lock
も忘れずにgitに入れておきます。
source "https://rubygems.org"
gem "sinatra"
gem "cucumber"
gem "rake"
gem "thin"
sinatraでindex.htmlを表示する
/
が呼ばれたらpublic/index.html
のファイルの内容をReadすればいいので、cunfig.ru
にまるごと書いてしまえばいいです。
require 'sinatra'
get('/') { open('public/index.html').read }
run Sinatra::Application
必要十分。多言語対応ならjaとかenとかのクエリを貰って分岐しますわ。
heroku用にForemanのファイルを用意する
herokuはForemanでアプリを起動してくれるので、foreman用の定義をつくります。
web: bundle exec rackup -p $PORT
herokuへ
features
を適当に書いたら、herokuへアップします。
heroku create
git push heroku master
cucumberをheroku上で実行
出力をpublic/index.html
にして更新します。
heroku run cucumber -f html -o public/index.html
これでindex.html
がcucumberの出力に差し替わります。
とりあえずホスティングした結果
http://mighty-springs-8010.herokuapp.com/
問題なく見れました。
あとは定期的に実行すればOKと。
スケジューラの追加と登録
アプリにスケジューラアドオンを追加します。
heroku addons:add scheduler:standard
先程のcucumberをタスクに登録すれば定期的にindex.html
が更新されていきます。
終わりに
出力のフォーマットをカスタマイズして、ユーザへの自動情報提供ページがつくれますね。
ビヘイビアテストとユーザ告知を同時に実現できる、なかなか良い仕組みだと思います。
Author And Source
この問題について(Cucumberの結果をSinatraでホスティング、APIステータスサイトを手軽に実現), 我々は、より多くの情報をここで見つけました https://qiita.com/sawanoboly/items/c611ed589e1a1186144e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .