TestNGテストメソッドから例外がスローされた後に実行されるアスペクトがあります。私は私のaspectjメソッドにTestメソッド名を取得したいと思います。Javaで例外をスローしたメソッド名を取得する方法
これについてのご意見はありますか?あなたから直接例外をスローする必要がありますが、
thisJoinPoint.getSignature().getName()
:
アスペクト比::
pointcut publicCall(): call(public * *(..));
after() throwing (AssertionError e): publicCall() {
logger.debug("Assertion Error thrown");
System.out.println("Threw an exception: " + e);
}
テスト:あなたが使用することができます
@Test
public void testScenarioOne(){
logger.debug("From Scenario One Test");
Assert.assertEquals(true, false);
}
ありがとうございます!ポイントカットのタイプを呼び出しから実行に変えることはやりました。 (2番目のスニペットはコンパイルされませんでした)。 – rookie007r
私が覚えている限り、私はちょうどうまくコンパイルされた私のエディタから2番目のスニペットをコピー&ペーストしました。あなたはもっと具体的になりますか?どのエラーメッセージが表示されますか? – kriegaex
あなたが持っているエラーは、pointcut testMethod()のような完全修飾パッケージを指定する必要があるためです:実行(@ org.testng.annotations.Test * *(..)); –