Java 监视来自其他eclipse插件的ng测试运行

Java 监视来自其他eclipse插件的ng测试运行,java,eclipse,eclipse-plugin,testng,Java,Eclipse,Eclipse Plugin,Testng,我正在开发一个eclipse插件,它显示用户到测试日志的链接。在当前的实现中,我们注册了一个jUnit运行监听器,它可以在运行套件时更新视图,这很好,问题是测试框架现在也支持TestNG,如果用户运行TestNG testcase,我们将需要TestNG插件的等效功能 我发现这个特性请求表明我正在寻找的功能是可以使用的,至少我是这样理解的。不管怎样,我似乎无法让它发挥作用。我尝试在视图设置中创建和定义不同的对象,这些对象应该侦听ng运行和对例如onFinish()的调用,但如果您是从suite.

我正在开发一个eclipse插件,它显示用户到测试日志的链接。在当前的实现中,我们注册了一个jUnit运行监听器,它可以在运行套件时更新视图,这很好,问题是测试框架现在也支持TestNG,如果用户运行TestNG testcase,我们将需要TestNG插件的等效功能

我发现这个特性请求表明我正在寻找的功能是可以使用的,至少我是这样理解的。不管怎样,我似乎无法让它发挥作用。我尝试在视图设置中创建和定义不同的对象,这些对象应该侦听ng运行和对例如onFinish()的调用,但如果您是从suite.xml或代码中定义常规侦听器,我还没有找到一种方法来“注册”侦听类。TestNG类似乎是一个单独的类,但只适用于每个测试运行,而不是在运行套件时监视插件。TestNGPlugin类似乎没有合适的方法。仅仅将TestListenerAdapter或ITestListener接口实现为私有类并不能达到这一目的

有人知道哪一个类或接口最适合实现它吗?如果需要,应该如何注册它们


顺便说一句,我正在使用Eclipse3.7.0和TestNG 6.1.1。

我找到了解决问题的另一种方法,最终可能是更好的解决方案。我监视org.eclipse.debug.core.DebugPlugin以进行任何类型的启动,并根据启动情况进行更新。这段代码使它工作了

    ILaunchesListener2 runListener = new ILaunchesListener2() {
                @Override
                public void launchesAdded(ILaunch[] arg0) {
                }
                @Override
                public void launchesChanged(ILaunch[] arg0) {       
                }
                @Override
                public void launchesRemoved(ILaunch[] arg0) {
                }

                @Override
                public void launchesTerminated(ILaunch[] arg0) {
                    Display.getDefault().asyncExec(new Runnable() {
                        public void run() {

                            updateTestRunList();
                            viewer.setInput(testRuns);
                            viewer.refresh();
                        }
                    });

                }
            };
            DebugPlugin.getDefault().getLaunchManager().addLaunchListener(runListener);