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名称。是的,我觉得足够了,怎么做?