有没有办法可以编程地获取在Junit Test案例中未能说明的方法的名称?即,如果@test失败,如果assert.asserttrue(className.methodname),我只能获取具有断言但无法获得失败断言的方法名称的@test方法的名称。我们有接近300个Junit测试,每个测试都有自己的@beforeclass,@before,@test, @after和@afterclass方法,并希望记录失败的断言的方法名称。
请看一下https://github.com/swfsm/junit-fail-logger。
这是一个注释处理器,在编译时间扫描方法中用org.junit.Test
注释并包含包装使用试用捕获块的断言以记录失败的断言。
so
assertTrue(myMethod(""));
将转换为
try {
assertTrue(myMethod());
} catch (AssertionError e) {
System.err.println("assertTrue(myMethod())")
throw(e);
}
调用记录的方法是可配置的,并且可以是任何静态方法接受String
参数(参数值也可以配置)。