mko*_*ler 9 java reflection junit
我想在执行JUnit测试时做一些日志记录.在JUnit 3.x中,无论实例化测试用例如何,总是很容易获得当前运行的测试用例的名称:
public void testFoo() throws Exception() {
String testName = this.getName();
// [...] do some stuff
}
Run Code Online (Sandbox Code Playgroud)
在JUnit 4中,事情似乎并不那么容易.有谁知道解决这个问题?是否有任何选项可以反映到当前的Runner实例中?
ssc*_*uth 10
在JUnit 4.7中,您还可以获取当前执行的最新方法的名称.记录时可能会很好.
摘自JUnit 4.7发行说明(在github上阅读):
public class NameRuleTest {
@Rule public TestName name = new TestName();
@Test public void testA() {
assertEquals("testA", name.getMethodName());
}
@Test public void testB() {
assertEquals("testB", name.getMethodName());
}
}
Run Code Online (Sandbox Code Playgroud)
好.我找到了另一种方法[在互联网上的某个地方](http://www.nabble.com/What-happened-to-getName () --td23456371.html):
@RunWith(Interceptors.class)
public class NameTest {
@Interceptor public TestName name = new TestName();
@Test public void funnyName() {
assertEquals("funnyName", name.getMethodName());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9650 次 |
最近记录: |