Agile Japan 2015 サテライト<沖縄> https://java-kuche.doorkeeper.jp/events/22305 --- 開発を安心して高速に回すための取り組みの一つに 「テストの実行時間を短縮する」 というものがある。 今回はその一例として、Docker のコンテナ技術を用いてテスト並列実行の高速化かつ安定化を目指した記録を紹介する
![あなたの安心を高速に守る Container-based CI](https://cdn-ak-scissors.b.st-hatena.com/image/square/b76bb25dcefbd39e935e965c3a136fe1178cab10/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fpeace-of-mind-container-based-ci-150416103726-conversion-gate02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハビリ中です。 RSpec は、テストケースを入れ子にできたり、テストケースや example がクラスやメソッドではなく、文字列で自由に書くことができたりしたのが良かったのですが、最近の Test::Unit ではそれもできるようになっています。 [ruby-list:48926] [ANN] test-unit 2.5.2 このリリースはとみたさんに使ってもらえるように改良したリリー スです。新しく追加した--locationはRSpecの--line_number
みなさま、もうすぐ今年の 2/3 が終わる今日この頃、いかが並列にお過ごしでしょうか。 私も快適に並列を生きていくために、今回 parallel_tests から test-queue に乗り換えようという気持ちになったということをご報告致します。 経緯 現在、PHP の Web アプリケーションを capybara + turnip でテストするお仕事をしており、 最近ようやく富豪な Docker ホスト環境に触れるようになったということもあって、 以前試した Selenium Grid + Docker でがりがり高速化に勤しんでいます。 そんなこんなで RSpec の同時並列実行もしないとね、ということで、以前から触っていた parallel_tests を導入しました。 これまでは全テストの完了まで 約40分 かかっていましたが、parallel_tests を導入するだけで 約1
Rails 4.1 was released on April 8th and subsequently Lucas Mazza from plataformatec blogged about 3 favourite features in Rails 4.1. I liked the idea, but some of my favourite things are different. Without further ado, here’s my favourite things about Rails 4.1. No more rake db:test:prepare One common busy-task which occupies Rails developers during development is keeping the test database migrate
■概要 (激しく既出感ありですが。。)何年もrailsやってますが、正しく理解できていなかった事の一つに rake spec(test)すると、処理の一環としてdb:test:prepareタスクを呼び出す という挙動があります。 通常問題にならないのですが、db:test:prepareが、db/schema.rbの情報を元にデーターベースを作成する為、railsが認識できないような項目は抜けて落ちてしまいます。 関数適用したインデックス トリガーやファンクション 別スキーマに作ったオブジェクト ...etc なので RAILS_ENV=test rake db:drop RAILS_ENV=test rake db:create RAILS_ENV=test rake db:migrate してからrake specする事を前提に、db:test:prepareを呼び出さずにspecを
Testing Rake tasks is one of the most painful things I do as a Ruby developer. Even after extracting all the code out into a separate class (which helps a lot), I still want to make sure I test that the right classes got called correctly with the right arguments. I wanted the subject to be the task, where I could call invoke, check its prerequisites, etc. describe "cron:hourly" do its(:prerequisit
「三年予測」は、さまざまな分野で活躍する「トップリーダー」へのインタビューを紹介します。「トップリーダー」の考える未来や、エンジニアへのメッセージを発信します。
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
ちょっと前に話題になったRSpecのスライドがステキだったよね。でもRSpecはまだまだ底知れない気がするので自分でもいろいろと調べてみようと思った次第。 まずはrspec-core(2.5.1)/features/example_groups/shared_example_group.featureを参考にshared example groupについて調べてみたよ。 例1:テストを共有できる require "set" shared_examples_for 'a collection' do subject { described_class.new [7, 2, 4] } its(:size) { should eq 3 } it { should include 7 } it { should_not include 9 } end describe Array do it_be
以前の記事でトラブルが起きた後の初動対応を書いてみたが、いざトラブルに遭遇すると、まず再起動してからどうするか考えるケースが多いと感じている。しかし何も情報がないと『情報がない/再現方法が不明』などの理由からそのままお蔵入りになってしまう。今回はトラブルに事前に備えるために、地味だけど大切なJavaVMのオプションをまとめてみる。 GCログの出力とローテーション OutOfMemoryError発生時のヒープダンプ自動出力と出力パス設定 JavaVMクラッシュログの出力パス設定 JVMオプションの設定 (OpenJDK/OracleJDK) JavaVMにはGCおよびヒープメモリの状態をロギングする仕組みや、OufOfMemoryError時にヒープダンプを自動的に出力するような障害に備えて自動的に情報を出力する機能がある。おすすめのオプション*1は以下の通り。 java -Xms?g -
みなさんこんにちは。@ryuzeeです。 IEに関するテストを自動化したくて色々調べ中なので記録として公開しておきます。 確認している環境はWindows7 Professional 32bit版+IE9。RubyはRubyInstallerを利用しています。 watirを使う方法watirはブラウザ操作のライブラリで、webdriverが出てくる前から存在しています。 過去から仕様が結構変わっており、現在では外部のライブラリ(win32screenshot)などを使わないとキャプチャが取れません。 さらに、win32screenshotは現時点では表示されている領域のみしか画像として保存できないので、検証目的で利用するには若干不十分と言えます。 ただ画面の要素の指定の仕方はwebdriverよりも楽です。 #-*- encoding: utf-8 -*- require 'rubygem
http://www.youtube.com/watch?v=bNn6M2vqxHE 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 「Airbnbのテスト:巻き込み力のある人がポジティブな変化をもたらす」でLou Kosakが、依存関係のないユニットテストを実現するのに参考にしたというCorey HainesのGoGaRuCo 2011での講演です。 一番読込みに時間のかかる3rd partyエンジン = Railsとの関係を切り離す。 1 class ShoppingCart < ActiveRecord::Base 2 has_many :shopping_cart_products, dependent: :destroy 3 has_many :products, :through => :
Your typical test code Here’s some typical test code found in many codebases @Test public void testCalculateTaxRate() { TaxRateCalculator calculator = new TaxRateCalculator(); Int value = calculator.calculateRate(200, 10); assertEquals(300,value); } This code suffers from several issues. Under what conditions is the tax rate calculated? What exactly is it doing? What is the expected outcome? Being
今までメール(ActionMailer)のテストはどうにも面倒で、自分でブラウザから動かしてログを見てってやっていたんですが、Cucumberでメールのテストもできるっぽいので試してみました。 確認環境はRails2.3.2、Cucumber0.2.3、email_spec0.0.10。 email_specはgithubをsourceに指定してインストールすることができます(bmabey’s email-spec at master - GitHub)。config/environments/test.rbあたりに書いておくといいと思います。 email_specをインストールするとgenerateにコマンドが追加されています。 $ ruby script/generate email_spec ここで生成されるfeatures/stepdefinitions/emailsteps.rb
2013-06-02 テストを parallel_tests の2倍以上高速にする Qspec ruby rails qspec テストが遅いので parallel_tests で高速化しようとしたが、効率わるすぎて腹がたってきたのでより効率的な Qspec をつくった。 いくつかの rails プロジェクトでベンチマークしたところ、2倍以上の高速化効果が得られた。 高速化に貢献しているのは次の要素。 テストファイルのふりわけを Redis 上の Queue をつかって動的におこなう。 Spork ですべてのテスト実行プロセスを事前に起動する GC を切る(ファイルごとに有効にして明示的にGCするので、十分なメモリがあればたいてい問題なく動作する。capybara 系をつかうとあぶない) ダウンロード & インストール: tomykaira/qspec · GitHub くわしくは #ru
昨日、Android Test Casual Talks #1に参加した。ここ最近はAndroidのガチ勉強会行ってなかったけど主催する@hotchemiさんからLTしない?と誘われたのでLT駆動勉強もありかなと思ってLTすることにした。レベル感がわからなかったので、というよりも割とAndroidのテストって語り尽くされてるような印象だったから何を話そうか迷ってた。とりあえず新しいものを紹介しようと思い、2ヶ月くらい前に登場したEspressoというライブラリに注目した。 AndroidでJUnitしてる人なら簡単に導入できるし、APIもすぐに慣れて使いやすく感じる。今のところAPIがそんなに充実してない感はあるから、したいことがすぐにできなくて歯がゆいかも知れないけど、拡張が簡単だから貢献のチャンスだ。 他のLTされた方の発表がすごく勉強になって、特に伊藤さんの『「最強」のチームを「造る
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く