2015年11月26日

RubyMine でminitestが動かなくなったo_O

快適な環境でばかり暮らしていると、突然サバイバルな環境に立たされた時、一瞬で息絶えてしまいます。
快適なIDEばかり使っていると、突然いつも使っている機能が動作しなくなっただけで目の前が真っ暗になります。。。

今回は、突然テストが動かなくなりました。
NoMethodError: undefined method `create_suite_started' for nil:NilClass
とテストコンソールに表示されてテストが実行されません。
仕方なく普通にコンソールからコマンドで実行しようとも思ったのですが、右クリックで任意のテストのみ実行したり、pメソッドが使えなかったりと非常にデバッグに手こずるので頑張って解決策を探しました。。。


するとこちらのフォーラムに症状通りの書き込みが
https://github.com/kern/minitest-reporters/issues/175

要は
mintest-reporters
のバージョンが、1.0 系から 1.1 系にアップされたことに起因するようです。
私の場合、Bundleで入ってくるminitest関連のバージョンが変わっていました。

-    minitest (5.7.0)
-    minitest-reporters (1.0.16)
+    minitest (5.8.2)
+    minitest-reporters (1.1.5)

そしてこちらの対処法なのですが、、、
RubyMineがmintest-reportersを扱う為のプラグインを、os97673さんが1.1系に合うように編集してくれたので、クローンして上書いて〜という感じ。

とりあえずリポジトリのトップページに行きzipでダウンロード。
私はMac環境なのでRubyMine.appを右クリック「パッケージの内容を表示」。
Contents>rb/ ディレクトリ以下が、例のリポジトリのファイル構成と全く同じになっているので、そこから
「/ruby-testing/src/rb/testing/patch/testunit/minitest/rm_reporter_plugin.rb」
を探し、落としてきたもので上書いたらオッケイ!!
os97673さん有難う!マジ感謝!!マジ神!!!

GitHubで公になっているプロジェクトなので、実際は既に製品に取り込まれているのではないでしょうか(?)
今回問題になったRubyMineは 7.1.4 (7系の最終)でしたが、この記事を書いている時点で 8.0.1 がリリースされています。

0 件のコメント:

コメントを投稿

OpenIDからもお気軽にどうぞ!