Java 监视来自其他eclipse插件的ng测试运行
我正在开发一个eclipse插件,它显示用户到测试日志的链接。在当前的实现中,我们注册了一个jUnit运行监听器,它可以在运行套件时更新视图,这很好,问题是测试框架现在也支持TestNG,如果用户运行TestNG testcase,我们将需要TestNG插件的等效功能 我发现这个特性请求表明我正在寻找的功能是可以使用的,至少我是这样理解的。不管怎样,我似乎无法让它发挥作用。我尝试在视图设置中创建和定义不同的对象,这些对象应该侦听ng运行和对例如onFinish()的调用,但如果您是从suite.xml或代码中定义常规侦听器,我还没有找到一种方法来“注册”侦听类。TestNG类似乎是一个单独的类,但只适用于每个测试运行,而不是在运行套件时监视插件。TestNGPlugin类似乎没有合适的方法。仅仅将TestListenerAdapter或ITestListener接口实现为私有类并不能达到这一目的 有人知道哪一个类或接口最适合实现它吗?如果需要,应该如何注册它们Java 监视来自其他eclipse插件的ng测试运行,java,eclipse,eclipse-plugin,testng,Java,Eclipse,Eclipse Plugin,Testng,我正在开发一个eclipse插件,它显示用户到测试日志的链接。在当前的实现中,我们注册了一个jUnit运行监听器,它可以在运行套件时更新视图,这很好,问题是测试框架现在也支持TestNG,如果用户运行TestNG testcase,我们将需要TestNG插件的等效功能 我发现这个特性请求表明我正在寻找的功能是可以使用的,至少我是这样理解的。不管怎样,我似乎无法让它发挥作用。我尝试在视图设置中创建和定义不同的对象,这些对象应该侦听ng运行和对例如onFinish()的调用,但如果您是从suite.
顺便说一句,我正在使用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);