更改JUnitEclipse插件中单元测试的显示名称

更改JUnitEclipse插件中单元测试的显示名称,eclipse,junit,eclipse-plugin,Eclipse,Junit,Eclipse Plugin,Eclipse插件是否可以更改默认Eclipse JUnit插件运行的单元测试的显示名称 一些背景:我正在尝试创建一个插件,它将显示单元测试名称(在Eclipse的JUnit视图中),与实际的方法名称稍有不同。如果实际的测试方法名称是“anEmptyCollectionHasSizeZero”,我希望它在Eclipse JUnit视图中显示为“空集合的大小为零” 我已经设法以上面描述的方式将测试方法名称显示为插件中的一个单独视图,但正如我所说的,我希望将此功能集成到正常的JUnit视图中。我试图

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

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

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


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

我不知道确切的答案,但最好的开始方式可能是查看
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
),因此您可能会运气不佳


我建议在网上询问这样做的可能性。

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


(我曾希望用于
TestViewer
的标签提供程序基于
平台ui.getWorkbench().getDecoratorManager().getlabeldercorator()
,因此图像、标签和颜色可以被修饰,但事实似乎并非如此……)

您可能想查看源代码。他们实现了类似的东西,JUnit窗口显示的东西肯定不是堆栈框架

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

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

@Override
protected void runTest() throws Throwable {
    testMyTest();
}

有消息吗?我真的希望这样一个功能以及。您当前的尝试(在单独视图中)是否以任何格式发布?谢谢。@Ittai:恐怕没有消息了。Eclipse插件的早期版本在上可用。然而,它是非常原始的。仍在开发中,并不打算发布。但是,如果您愿意,请随时查看。:-)我还对这本书感兴趣:)我找到了这本关于eclipse插件的书。希望可以下载代码示例,首先查看
circle-2
源代码部分,它们可以将侦听器添加到测试运行中,特别是在
LabelProvider
上(请参见
TestReportLabelProvider.java
),也许您可以从中获得一些启示。我的2美分;-)@我只是想告诉你,我提到的Eclipse插件的一个公共版本已经发布了。在单元测试运行时,它仍然不会更改它们的显示名称,但它为您提供了一个单独的相关测试视图,该视图显示了与您正在编写的代码并列的相关测试。顺便说一句,如果你想改变这一点,请在Bugzilla上提交一个新的bug:我已经四处查看了一下。然而,这相当复杂,但似乎很有希望。如果运气不好的话,他们可能会这样做,因为他们实现了自己的文档类型(通过XText),而不是使用Java文件,但我们拭目以待!
@Override
protected void runTest() throws Throwable {
    testMyTest();
}