単一の単体テストを実行し、その「プロファイリング」情報を収集したいと考えています。すべてのメソッドが呼び出される頻度、特定のクラスのインスタンスがいくつ作成されたか、特定のメソッド/スレッドの実行にかかった時間などです。次に、私はこの情報をいくつかの期待値と比較したい。これを実行できる Java 用のプロファイラーはありますか (もちろん、GUI やユーザーの操作なしで、すべて自動的に実行する必要があります)。
これは私がそれをどのように機能させたいかです:
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)
);
}
}