如何在运行时获取JUnit 4中的测试用例名称?
我想在执行 JUnit 测试时进行一些日志记录。 在 JUnit 3.x 中,获取当前运行的测试用例的名称总是很容易,无论测试用例是如何实例化的:
public void testFoo() throws Exception() {
String testName = this.getName();
// [...] do some stuff
}
在 JUnit 4 中,事情似乎并不那么容易。 有谁知道这个问题的解决方案吗? 是否有任何选项可以反映到当前的 Runner 实例中?
I want to do some logging while executing my JUnit test. In JUnit 3.x it was always easy to obtain the name of the currently running test case, no matter how the test case was instantiated:
public void testFoo() throws Exception() {
String testName = this.getName();
// [...] do some stuff
}
In JUnit 4 things seem to be not so easy. Does anyone know a solution to this? Is there any option to reflect into the current Runner instance?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 JUnit 4.7 中,您还可以获得当前执行的测试方法的名称。 登录时可能会很好。
摘自 JUnit 4.7 发行说明(在 github 上阅读此处):
In JUnit 4.7, you can also get the name of the currently executed test method. May be nice when logging.
Taken from JUnit 4.7 Release Notes (read them here at github) :
好的。 我在互联网上的某个地方找到了另一种方法( http://www.nabble.com/What-happened-to-getName()--td23456371.html):
OK. I've found another approach [somewhere on the Internet](http://www.nabble.com/What-happened-to-getName()--td23456371.html):
有什么问题:
?
What's wrong with:
?
我知道这已经很旧了,但这是一个有用的(非 junit)方法,我将其放在所有测试的顶部。
I know this is old, but here is a useful (non-junit) method that I put at the top of all my tests.