2017-02-20 4 views
0

を実行するためにかかった:Minitest:あなたがしなければプログラムのアクセス名と時間はテストでは、minitestを使用した場合、現時点では

bundle exec rake TESTOPTS='--verbose' 

あなたは、このような出力を得る:私はしたい

Text you typed in the describe#test_0001_test description = 0.11 s = . 
Text you typed in the describe#test_0003_another test description = 0.10 s = . 
...etc. 

をこれにプログラム的にアクセスできるように、最速のテストを選択し、実行するまでに並べ替えて、必要な形式で標準出力に出力することができます。理想的には、私はこれのために新しいレーキタスクを定義し、次に何かを実行します:

bundle exec rake mytask 

または何かを実行します。

しかし、この情報にプログラムでアクセスする方法については、私はオンラインで何かを見つけることはできません。私はカスタムレポーターについて調べましたが、明らかにMinitestにはそれを猿パッチしなければなりません。私はそうしたくありません。もう1つのオプションは、minitest-reportersの宝石をインストールすることですが、私はその機能をすべて必要としたくないし、私がやりたいことはとても簡単です。私はMinitestリポジトリのコードを読みましたが、自分のクラスを作成したい場合は継承するものの周りを頭で囲むことができませんでした。実行する時間と実行する名前を取得するためにアクセスするものテスト。

プログラムでこの情報にアクセスする方法はありますか?たとえば、すべてのテストの実行が終了したら、minitestによって生成されたレポートにアクセスします。宝石や猿のパッチを必要とせずにカスタム記者を書いている人はどうですか?私はこれが簡単なことでなければならないと感じています。

答えて

1

write your own reporter(monkey-patchやminitest-reporterを使用する必要はありません)が、より簡単な方法があります。詳細出力はあなたがparse itsortを使用できるようにフォーマットされます。

bundle exec rake TESTOPTS='--verbose' | sort -t = -k 2 -g

関連する問題