12

Eclipse 插件是否可以更改默认 Eclipse JUnit 插件运行的单元测试的显示名称?

一些背景知识:我正在尝试创建一个插件,它将显示单元测试名称(在 Eclipse 的 JUnit 视图中)与实际方法名称有点不同。如果实际的测试方法名称是“anEmptyCollectionHasSizeZero”,我希望它在 Eclipse JUnit 视图中显示为“一个空集合的大小为零”。

我已经设法以上述方式将测试方法名称显示为插件中的单独视图,但正如我所说,希望将此功能集成到正常的 JUnit 视图中。我试图查看是否可以找到相关的扩展点,但找不到任何东西。是否有可能做到这一点?

另外,是否有一个插件已经这样做了,或者类似的?

4

4 回答 4

3

我不知道确切的答案,但最好的起点可能是查看org.eclipse.jdt.internal.junit.ui.TestRunnerViewPart(在插件中org.eclipse.jdt.junit)的代码。这ViewPart就是您在 Eclipse 中看到的 JUnit 视图。

看起来org.eclipse.jdt.internal.junit.model.TestCaseElement.getTestMethodName()可能是获得名称的地方。也许您可以跟踪这些元素的创建方式/时间并注入其他名称。看起来实现类是内部的(org.eclipse.jdt.internal.junit.model.TestElement),所以你可能不走运。

我建议在JDT 论坛上询问这样做的可能性。

于 2012-05-03T21:49:43.553 回答
3

似乎没有任何可插入的方式来更改标签或使用的颜色。

(我曾希望用于 的标签提供程序TestViewer基于 a PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(),因此可以装饰图像、标签和颜色,但似乎并非如此......)

于 2012-05-07T14:10:05.483 回答
2

您可能想查看jnario来源。他们已经实现了类似的东西,JUnit 窗口显示的东西肯定不是堆栈帧。

在此处输入图像描述

于 2012-07-11T20:27:49.037 回答
0

您可以使用 junit.framework.TestCase 类的 setName() 方法(或带有 name 参数的构造函数)。

public MyTestCase() {
    super("This is my JUnit test");

默认情况下,TestCase 通过它的名称定义要执行的方法,我们刚刚覆盖了它。为了使其可运行,我们必须像这样覆盖 run 方法。

@Override
protected void runTest() throws Throwable {
    testMyTest();
}
于 2019-11-21T14:30:37.060 回答