Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

ミニテストの失敗を即座に確認するためのショートカット

次の小さな機能をチェックインしようとしているので、完全な統合テストの実行を開始します。ドットが画面いっぱいになるまで、待って、待ってください…

......FF....

:-(

テストの実行が終了するまで、まだ数分あります。ただし、テストの実行を早期に終了すると、わからない どのテストが失敗しましたか。

これらの失敗を確認する前に、実行全体が終了するのを本当に待つ必要がありますか?

Ctrl-Tで救助します!

Macを使用している場合は、テストの失敗を早期に確認する方法があります。

Ctrl-Tを押す テストの実行中。

実行すると、現在実行されているテストケースと、実行されている期間が表示されます。これまでに失敗したテストがある場合は、また それらの失敗を確認して、次の実行の前にそれらを修正するための有利なスタートを切ることができます!

これは、ハングするテストのデバッグにも非常に便利です。 Ctrl-T どのテストが試行中かがわかります 実行するので、その1つのテストだけを分離して修正できます。

最後に、Ctrl-Tを押す習慣を身に付けました テストが完了するまでに著しく長い時間(たとえば、1秒以上)かかるときはいつでも。速くする必要のある遅いテストがたくさんあることを私に指摘しました。

Ctrl-Tはどのように機能しますか?

Macの場合、Ctrl-T INFOと呼ばれるメッセージまたはシグナルを送信します 、実行中のプログラム:

signal_test.rb
puts "Starting..."
trap("INFO") { puts "INFO triggered!" }

loop { print "."; sleep 0.1}
~/Source jweiss$ ruby signal_test.rb
Starting...
........^Tload: 7.14  cmd: ruby 6121 running 0.10u 0.08s
INFO triggered!
.......^Tload: 7.14  cmd: ruby 6121 running 0.10u 0.08s
INFO triggered!
................^Tload: 11.77  cmd: ruby 6121 running 0.10u 0.08s
.INFO triggered!
......^Csignal_test.rb:5:in `sleep': Interrupt
	from signal_test.rb:5:in `block in <main>'
	from signal_test.rb:5:in `loop'
	from signal_test.rb:5:in `<main>'

MinitestはINFOについて知っています 、およびテスト実行に関する情報を出力することで応答します:

~/Source/rails/activesupport[master] jweiss$ be rake
/usr/local/Cellar/ruby/2.2.0/bin/ruby -w -I"lib:test"  "/usr/local/Cellar/ruby/2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/**/*_test.rb" 
Run options: --seed 33445

# Running:

.................F........^Tload: 1.62  cmd: ruby 29646 running 4.37u 1.40s
Current results:


  1) Failure:
CleanLoggerTest#test_format_message [/Users/jweiss/Source/rails/activesupport/test/clean_logger_test.rb:13]:
Expected "error\n" to not be equal to "error\n".



Current: DigestUUIDExt#test_invalid_hash_class 0.02s
............................

かなりいいです!

これが可能であることを知っていると、他のアプリがINFOを処理する方法を考えるかもしれません。

  • レールは、現在実行中のコントローラーアクションまたはいくつかのパフォーマンス統計を表示する可能性があります。
  • Sidekiqは、各ワーカーが何をしているかを教えてくれるので、どこで行き詰まっているかを確認できます。

そして、Sidekiqは実際にINFOを使用していました 実行した各スレッドのバックトレースを出力します。ただし、INFO Linuxではサポートされていないため、Sidekiqは別の信号に切り替えました。残念ながら、その信号は、INFOのようにキーボードショートカットでトリガーすることはできません。 できます。

INFO Linuxでは利用できません(INFOを使用すると言う人もいます とにかく、この方法は完全には正しくありません)、この動作はそれほど普及していません。

それでも、さまざまな状況で役立つ可能性のある少しの追加のヘルプです。 アプリを作成している場合は、関心のある人にオンデマンドで表示できるステータスメッセージの種類を検討する価値があります。


  1. Instagram でアクティビティ ステータスを非表示にする方法

    インスタグラムのフォロワーは多いですか?あなたが Instagram でアクティブであることを、彼らがどのように知るようになったかに気付いたことはありますか?実際にはよく知らないInstagramフォロワーの何人かからメッセージを受け取ると、状況に対処するのが難しくなることがあります.このような状況に対処する最善の方法は、活動状況を非表示にすることです。それでは、Instagram でアクティビティ ステータスを非表示にする方法を見てみましょう。Instagram で好きな人をフォローしている場合は、彼または彼女が最後にいつアクティブだったかを確認する方法を次に示します。 Instagram

  2. 新しい PlayStation 4 ですぐに変更できる 5 つの設定

    それで、あなたは今年のクリスマスに新しい PS4 を手に入れました。まず、ご自宅に最新の PlayStation コンソールが届いたことをお祝いします。 PlayStation 4 は、PS4、PS4 Slim、PS 4 Pro の 3 つの基本モデルでリリースされます。このブログ投稿で説明する設定は、これらすべてのバージョンの PlayStation に適しています。 どこから始めればよいか迷っていますか?ここでは、新しい PlayStation 4 ですぐに行う必要がある多くの微調整を紹介します。これにより、全体的なゲーム体験が確実に向上します。 新品のゲーム機を最大限に活用するた