Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Minitest-soundのご紹介

y-yagi
December 17, 2014

 Minitest-soundのご紹介

y-yagi

December 17, 2014
Tweet

More Decks by y-yagi

Other Decks in Programming

Transcript

  1. これで何が嬉しいか テスト自動実行用に"Guard"を使用している Guardはファイルの更新を検知して、よしなに実行してくれるこ テストコード書く-> guardがファイルの更新検知 -> テスト実行 -> テスト結果を耳で確認 というサイクルになる

    テスト結果を一々目で確認しなくてよい(予期せぬエラーの場合 当然見ますが) テストコード書くのに集中出来る テスト実行中に戦闘BGM流すとテンション上がって良い(個 人差あり)
  2. MinitestのExtensionの作り方 ここまでをまとめるとこんな感じ # minitest/sample_plugin.rb: require_relative 'sample_reporter' require_relative 'sample_reporter2' module Minitest

    def self.plugin_sample_options(opts, options) opts.on "­­sample", "Sample Plugin" do options[:sample] = true end end def self.plugin_sample_init(options) self.reporter << SampleReporter.new(options) self.reporter << SampleReporter2.new(options) end end
  3. reporter module Minitest class SampleReporter < AbstractReporter attr_accessor :results def

    initialize(options) self.results = [] end def start $stdout.print "test start!!\n" end def record(result) # print test name and execute time $stdout.print "%s#%s: %.3f s\n" % [result.class, result.name, result.time] self.results << result end def report $stdout.print "test finished!!\n" end def passed? true end end end
  4. reporter module Minitest class SampleReporter2 < StatisticsReporter def report super

    $stdout.print "test time: #{total_time}\n" end end end 詳細は ご参照 ソース