dots. IT勉強会で発表させて頂きました、ランサーズ開発環境のDocker移行に関する資料です。 サービスの拡張に伴い、多数の開発環境が必要になったため、それを効率良く管理するためDockerを採用した話です。 ・既存開発環境との互換性維持 ・本番環境との構成共通化 ・非エンジニアでも構築、運用できる仕組み を意識した、目的達成の手段としてのDocker運用方法を紹介いたしました。
Cucumberって、仕様設計者の意図をプログラムによる自動テストにできる魔法です。 仕様設計者っていうのは、Rubyでのプログラミングが難しいけど、お客さまのニーズを理解して、それをドキュメントにできるハイパーな人です。プログラマにとっては神様です。 (でも、それがプログラマの徹夜の源なのだったりしますよね。実現が困難で意図が不明な仕様を必死で実装する感じですよね。だから、それをなんとかしなければ徹夜は解消できないと考えてみました。) Cucumberではプログラマ以外の人でも分かりやすい記述ができます。 でもね、どうせそのドキュメントを見るのはプログラマだけです。なので、生のCapybara APIで十分なのかもしれませんね。なので、ここではRSpecのfeature specを考察します。 from Feature spec on Relick : https://www.relis
ちょうど #p4d 温泉合宿でもCucumber/Turnipの関連をやったので興味深かったのでListUpしてみました。
Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる:フレームワークで実践! JavaScriptテスト入門(5)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載。今回は、RubyでWebKitをヘッドレス化するフレームワーク、受け入れテストの記述が日本語でできるツール、スタブやモック、スパイが使えるライブラリを組み合わせたテスト方法などを紹介。 Capybara-WebkitとCucumberとSinon.JSを利用したJavaScriptのテスト 本連載の最終回となる今回は、これまでの連載のようなJavaScriptのロジックを単体テストするのではなく、Webブラウザ上の操作と、それによって動作
CucumberでChefの腕前を試す YungSang February 11, 2013 目次 Cucumber って? 振舞駆動開発(BDD)って? Cucumber-Chef って? もろもろインストール Cucumber-Chef のセットアップ Hello World! その他のコマンド/ツール Cucumber って? 振舞駆動開発(Behavior Driven Development; BDD) に基づいた受け入れテストを行う為のツール Ruby で書かれているが、テストする対象は縛られない。 Ruby のライブラリ/ツールを利用すれば、ブラウザをエミュレートしてサイトの動作テストも可能 Gherkin と呼ばれる自然言語に近い形の文法でテストケースを記述 Feature(Background、Scenario) と呼ばれるテストケースと、Step と呼ばれる実際のテスト
WordPressのようにPHPなどでできたWebサイトの振る舞いを自動でテストしたいと思い、仕組みを作ることにしました。 きっかけは、設定が間違ってて、トップページは正常に表示されているにも関わらず、個別のエントリページではエラーになってることがあったためです。 別にWordPressに限った話ではなく、Pythonとかで開発してても必要になる話なので、簡単なところから始めてみようというわけです。 なお、Rubyの世界をあまりわかってないので、Ruby周りの勉強を兼ねてます。間違っていたら教えてもらえるとありがたいです。 やりたいこと ページがアクセスできるかチェックしたい。 なるべくサーバーとか立てずに簡単にやりたい。 将来的にはちゃんとしたブラウザでの動作チェックに応用したい。 構成 今回の受け入れテストは、以下のライブラリを使って実現します。 Cucumber Capybara C
この記事は最終更新から1年以上経過しています。 気をつけてね。 Chef,Puppetに代表される自動構築・構成管理ツールを使うと開発したサーバを検証用などの目的で簡単に再現可能になります。 ただ、漠然としたサーバ構築をしていると何をサービス提供しているのかという定義が曖昧になるため、Cucumber等を使ったテストを軸にテスト駆動でのサーバ構築をしてみましょう。 応用すれば既存のサーバをCucumberによってモデリングし、Chefによって繰り返し再現可能な状態に持っていけます。 このコンテンツで使ったコードはGithubの https://github.com/higanworks/test_driven_infrastructure_example で公開しています、参考にしてみたりフィードバックしてもらえると助かります。 ツール Cucumber: "ふるまい"を自然言語のように記
Testing remote (PHP) websites with Capybara, Cucumber, Mechanize, Selenium 2 Webdriver … and SauceLabs Posted on 11/08/2011. By Pete Otaqui. This is more or less the perfect setup for me, and it lets us run our tests against our PHP web application using the very fast mechanize driver where possible, and for tests that require javascript we can use either the “normal” selenium driver in capybara,
少し前に、「継続的デリバリー」という本と「ドメイン駆動設計」という本を読んだことで、Cucumberと受け入れテストというものについて、自分なりに考えがまとまった感じがありました。 アジャイルサムライ横浜道場の懇親会でそういう話をしていたら、道場主から、今度の特別編で話して欲しいと言われたので、拙いながら受け入れテストとCucumberについてまとめて発表し、ついでにハンズオンの講師をしてきました。 私自身、ある程度こういうことなのかな、と思いながらも実践出来ていないことも一杯あるなかでの発表だったので、至らない所がかなりあったと思いますが、 参加者の皆さんからは、ためになったという声も聞けたので、何とか役目を果たすぐらいは出来たのかな、と思っています。 発表資料はこちら。(多少修正してあります) Cucumberは裏で実装する人がかなり泣きを見る構造になっているので、プログラマー的には評
IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc. Please open new issue/pull requests in either English or Japanese if you would have any feedback or you would like to contribute this repo. We provide mainly "Japanese contents" by markdown text. IBM Developerの最新情報は https://developer.ibm.com/ にアクセスし、英語のコンテンツを参照してください。 このリポジトリは、IBM Developer Japan Webサイトで公開していた
Cucumberを初めて見た人はこんな違和感を感じるんじゃないかと思います。 なんだこれ。変なDSL入れるより、直接Rubyプログラムを書いちゃう方が楽じゃん。便利じゃん。速いじゃん。 僕もそう思っていました。 そう思ったプログラマは、Cucumberを使わずにTestUnitでテストを書きます。変なDSLを覚える必要も無ければ、書く必要もありません。幸せな日々。ん?ボタンをタップするコードを3回書いてるな?よしメソッドにしよう!TableViewの内容のテスト?メソッドにしよう! そしてある日気づきます。Cucumberじゃん、これ……しかも、Rubyプログラムがそのままなので読みにくい。一体どこで間違えたのでしょう? CucumberでテストしたいのはUIです。Cucumberのターゲットは受け入れテストなので、最終的な成果物のテストが必要になります。最終的な成果物は実際にユーザーが使
Thanks so much for this. There are so many Rails tutorials for absolute beginners, and lots of stuff that assumes expert knowledge, but not much, besides practice, to span the gap. Rick Quantz, HackerNews, 13 May 2011 I will be starting a new job here in SF, due in no small part to what I've learned here from the RailsApp Project. Joseph May, 23 Dec 2013 I would like to say thank you for such a pr
この記事は最終更新から1年以上経過しています。 気をつけてね。 cucumberは受け入れテストにいい。 開発者が書くのはまったくもってよろしくないが、承認側としては読めないプロダクション用のコードをレビューするより実用的だ。 受け入れ側の書くシナリオ 冗談のようだが日本語でいい。 ssl_check.featureというファイルには正にこのように書いてある。 # language: ja 機能: 証明書期限のテスト 証明書の更新漏れを確かめるために 利用者の立場から 期限を確かめたい シナリオ: 証明書期限について 前提 my.z-cloud.jp にアクセスして もし 証明書の情報がとれた ならば 期限が 360 日より長いか確認する シナリオ: 証明書期限について 前提 my.z-cloud.jp にアクセスして もし 証明書の情報がとれた ならば 期限が 30 日より長いか確認する
この記事は最終更新から1年以上経過しています。 気をつけてね。 Cucumber-chefはBDDでのインフラ構築を支援するためのツール。 テスト実行用の仮想マシンを用意してレシピを適用するヘルパが強力だ。 公式のチュートリアルをさっと流してみる。 準備 チュートリアル通りにやるにはこれらが必要。 opscodeのアカウントとOrganaization、無料版で可 クライアントキー valirdation key テストサーバはOpscodeにNodeとして登録されるのでNode1枠 awsのアカウント アクセスキー (権限はEC2だけでいいはず) シークレット rvm (必須ではない) knife.rb を書けるならopscodeの部分は既存のchef-serverでも大丈夫だとおもう。 Setup gemsetを作ってbundle initしたら、Gemfileで開発版のcucumbe
#tddact の LT のなかで cucumber を批判したが(資料: tomykaira/specs-dis)、いろいろ考えて反省したので意見表明する。用語には気をつけているつもりだが、間違って覚えているものがあるかもしれないので、気になる点はぜひ指摘していただきたい。まず、私は cucumber を rails 上の end-to-end な developer test としてしか使ったことがなかった。ようするに開発者が開発を駆動するために書くテストだ。 そうすると、 cucumber にプリセットされている step 定義にのっとり cucumber 語(日本語でもプログラムでもないよみにくいもの)で適当に確認したい動作を書いて、これを実現するようにプログラムを書くということをしていた。 もちろん全部をデフォルトの step 定義で書くことはできないので自分でも拡張しなきゃ
The RSpec Bookをやってみるで、RSpec + Cucumberが良さそうなことはわかったのだけど、具体的にどう適用したらよいのかわからない。特にほとんどのアプリで最初に作るべきログイン機能の部分。 そこで、Rails Tutorial for Devise with RSpec and Cucumberをやってみる。 環境 RVM ruby 1.9.3p194 Rails 3.2.8 新しいプロジェクト作成 % rails new rails3-devise-rspec-cucumber -T「-T」は、Unit::Testを入れないためのオプション。理由はRSpecを入れるため。 Gemfileに以下のライブラリを追加。 rspec-rails cucumber-rails database_cleaner factory_girl_rails (参考:func09:has
サンプルソースコード The RSpec Book:Source Code インストール % ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux] % rails -v Rails 3.2.7 % rvmsudo gem install rspec % rspec --version 2.11.1 % rvmsudo gem install cucumber % cucumber --version 1.2.1 Hello RSpec & Cucumber hello/5/features/step_definitions/greeter_steps.rbの Thenの行は本だと Then /^I should see "([^"]*)"$/ do | greeting | @message.should == gr
DLをお急ぎの方は →記事の末尾へどうぞ 愛用エディタ Coda2 viとEmacsが血で血を洗うバトルを繰り広げる中、へたれな自分はメモ帳やTextMateを使うことも多かったのですが、最近のお気に入りはCodaというエディタです。最近バージョン2がでました。 単にテキストを編集するエディタ機能に加えて、ファイラ・ターミナル・ファイル転送(FTPやWebDAV等)・VCS(Subversionやgit等)・MySQLテーブル操作UIなどが組み込まれていて、どちらかというと統合開発環境(IDE)に近いと思います。 有料ではありますが、Eclipseのような重武装ではなく、サクサクっとwebページやrailsアプリを開発するときに重宝しています。 Cucumberのfeatureファイル ところで、今月開発していたRailsアプリのテストを補充したく、Cucumberでフィーチャを記述しはじ
RSpec と Cucumber のチュートリアルおよびリファレンス本。論理ゲームを題材に、Cucumber と RSpec を使って BDD を実践しているので、Ruby で BDD するなら参考にできると思う。 Cucumber と RSpec を使った開発の流れを簡単に書くなら Cucumber で機能のフィーチャを定義する RSpec でモデルやコントロールのスペックを定義する スペックとフィーチャを満たすようにモデルやコントローラーを実装する リファクタリング 上記を繰り返す という感じ。RSpec だとモデルやコントローラーといった部品単位の振る舞い(スペック)しか書けないけど、それを補うようにアプリの機能の振る舞い(フィーチャ)を書けるのが Cucumber。本書に掲載されているフィーチャは英語だけど、日本語も使えるみたい。 ただ、趣味プログラミングだと、やりたい事に対して時
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く