単体テストを実行し、すべてのメソッドが呼び出された頻度、作成された特定のクラスのインスタンス数、どれくらいの時間特定のメソッド/スレッドなどを実行するようにします。次に、この情報をいくつかの期待値と比較したいと思います。私にこれをさせるよりもProfiler for Javaはありますか?(これはGUIやユーザーのやり取りなしで自動的に行われます)単体テストのJavaプロファイリング結果を自動的に比較する
これは、私はそれが仕事をしたい方法です:自動的にプロファイリング情報のスナップショットをキャプチャ
public class MyTest {
@Test
public void justTwoCallsToFoo() {
Profiler.start(Foo.class);
Foo foo = new Foo();
foo.someMethodToProfile(); // profiler should collect data here
assertThat(
Profiler.getTotalCallsMadeTo(Foo.class, "barMethod"),
equalTo(3)
);
}
}
この質問は、他の複数の「Javaプロファイラをお勧めしますか?それで質問?私はIntellijでYourKitを使用し、他の実行ごとに(個々の)ユニットテストをプロファイルします... – amaidment
私は**ユニットテストの中でクラス/メソッド**をプロファイリングしたいです - IDEやプロファイラとの視覚的なやりとりなしに。 – yegor256
ユニットテストでプロファイラが実行され、出力が収集され、プロファイリングデータに基づいて単体テストが合格/不合格になることを意味しますか?たとえば、メソッドが呼び出された回数です。もしそうなら、私は、プログラムでプロファイラ*を呼び出して、APIを介してその出力を取得したいことを明確にするために質問を明確にすることができると考えています。たとえば、人間と同じように「私は比較したい」と読んでいます。 –