Java 如何知道当前触发了哪个测试
我有下一个密码Java 如何知道当前触发了哪个测试,java,junit,Java,Junit,我有下一个密码 class Test extend Parent{ @Test public void testMethod(){ }; } class Parent { 'here I need to have some check which test is running now' } 就在测试类之前初始化父类而言,如何知道哪个jUnit测试正在运行,或者如果有多个子类,如何知道哪个子类?您可以通过以下方式获得启动父类创建的子类的名称: //在父级的构造函数中 Sys
class Test extend Parent{
@Test
public void testMethod(){
};
}
class Parent {
'here I need to have some check which test is running now'
}
就在测试类之前初始化父类而言,如何知道哪个jUnit测试正在运行,或者如果有多个子类,如何知道哪个子类?您可以通过以下方式获得启动父类创建的子类的名称:
//在父级的构造函数中
System.out.println(Thread.currentThread().getStackTrace()[2].getClassName());
在多重继承级别的情况下,您可以编写一些额外的自定义逻辑并遍历当前堆栈跟踪
免责声明:你将要做的事情看起来并不好。使用内置功能,如
@Before
,@BeforeClass
或一些重构可能是更好的解决方案。为什么?单元测试的整体思想是它们是独立的。长话短说,这将是针对monolith的测试,我需要为一些测试覆盖configs,一个选项是通过jenkins作业覆盖env变量来完成,但我问的这种方式会更轻松父类不知道其子类,特定于子级的代码应该在子级中。即使在父级中,您也可以很容易地说出测试文件的类名。够了吗?但不是testfunction名称。是的,我觉得足够了,怎么做?