`

Eclipse插件开发之基础篇(3) 插件的测试与调试

 
阅读更多

1. 使用JUnit对插件进行测试

  Eclipse中已经嵌入了JUnit,我们可以使用JUnit为插件进行单体测试。一般的JUnit是不可以对插件部分(对Eclipse的API依赖的部分)进行测试的,但是在PDE环境中使利用JUnit对插件进行单元测试成为可能。

  要想进行测试首先要添加插件的依赖关系,在插件设定页面的[依赖关系(Dependencies)]页面点击[增加(Add)]按钮,添加[org.junit(3.8.2)]作为必须插件(图3-1)。

图3-1 增加org.junit插件的依赖关系

  

  

  接下来,生成测试用例(TestCase)。测试用例和一般的JUnit用例相同,继承junit.framework.TestCase。代码1中的测试用例说明了,在工作台页面中打开一个视图,并且确认打开的视图处于激活状态。

 

代码1 插件测试用例的示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class SampleViewTest extends TestCase {
 
    public SampleViewTest(String name) throws Exception {
        //取得当前活动的页面
        IWorkbench workbench = PlatformUI.getWorkbench();
        IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
        IWorkbenchPage page = window.getActivePage();
         
        //打开视图
        page.showView("cn.sf.amateras.sample.views.SampleView");
         
        //确认打开的视图处于激活状态
        IWorkbenchPart activePart = page.getActivePart();
        assertTrue(activePart instanceof IViewPart);
        assertEquals("cn.sf.amateras.sample.views.SampleView",
                activePart.getSite().getId());
    }
 
}

 

  当前这个测试用例可以通过在测试类上点右键[执行(Run As)]->[JUnit插件测试(JUnit Plug-in Test)]执行。

图3-2 执行JUnit插件测试

  

 

 2. 调试和错误处理

  调试插件

    用调试模式启动运行时工作台后,像一般的java程序一样,在程序中设置断点就可以了。调试模式的启动可以从manifest编辑器的概要页面,点击[调试              Eclipse应用(Lunach an Eclipse Application in Debug mode)],或者点击工具栏上的调试按钮。

  在错误发生时,需要做以下两件事:

  1)通知使用者

  2)记录日志

 

  输出日志

    向Eclipse下的[.metadata]文件夹的[/.log]文件进行日志输出。输出日志时使用org.eclipse.core.runtime.ILog接口,通过插件类获得ILog接口的实例。如代码2所示

代码2 输出日志

1
2
3
4
5
6
7
ILog log = Activator.getDefault().getLog();
         
log.log(new Status(IStatus.OK, Activator.PLUGIN_ID,
    0, "正常消息", null));
         
log.log(new Status(IStatus.OK, Activator.PLUGIN_ID,
    0, "异常消息", new Exception("输出日志的异常")));

    

  Status对象的构造函数的参数如表1所示。

表1 Status的构造参数

参数   说明
int severty 重要度。候选值有IStatus.OK、IStatus.ERROR、IStatus.INFO、IStatus.WARNING、IStatus.CANCEL。
String pluginId 插件的ID
int code 插件固定的消息code,或者是IStatus.OK。
String message 输出日志的消息。
Throwable exception 输出日志的异常。没有时候添null。

 

  错误通知

  错误发生后通知使用者的方法有很多,最简单的方法就是使用JFace的org.eclipse.jface.dialogs.ErrorDialog类。

代码3 使用ErrorDialog

1
2
3
4
5
6
7
try{
    //....
}catch(Exception e){
    IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID,
            0, e.toString(), e);
    ErrorDialog.openError(window.getShell(), "错误", "插件出错了!", status);
}

  

  运行时工作台启动时的参数

  Eclipse是由很多的插件构成的,在其背后运行着非常复杂的处理,所以也需要相应的内存。特别是,很多的插件在加载庞大的类时,就很容易出现VM常驻(permanent)区域的不足的情况。

  通常,Eclipse使用的堆(Heap)区和常驻区的大小可以通过Eclipse安装目录下的eclipse.ini文件进行设定。

代码4 默认的eclipse.ini文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-showsplash
 
org.eclipse.platform
 
--launcher.XXMaxPermSize
 
256m
 
--launcher.defaultAction
openFile
 
-vmargs
 
-Dosgi.requiredJavaVersion=1.5
 
-Xms40m
 
-Xmx512m

 

  在插件开发过程中如果出现内存空间不足的时候,也可以通过[运行(Run)]->[运行设定(Run Configurations)]窗口的[参数]tab页中的[VM参数]项来指定空间的大小。

图3-3 VM参数设定

  

 转载请注明出处,http://www.cnblogs.com/liuzhuo.

分享到:
评论

相关推荐

    Eclipse插件开发学习笔记全篇+源码.rar

    3. 网络和云服务:利用Eclipse插件实现与远程服务器的交互,如Git集成、RESTful API调用等。 4. 社区资源和最佳实践:熟悉Eclipse社区,了解最新的插件开发技术和社区最佳实践。 5. 持续集成和部署:设置CI/CD流程,...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法.zip

    在《Eclipse插件开发 学习笔记 第3篇 高级进阶》中,开发者将会学习到更多高级主题,比如命令框架(Command Framework)、透视图(Perspectives)、视图(Views)、编辑器(Editors)和操作(Actions)。这些是构建...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法

    3. **扩展点(Extension Points)与扩展(Extensions)**:Eclipse插件通过定义和使用扩展点来实现功能的集成。开发者需要了解如何查找、定义和使用已有的扩展点。 4. **透视图(Perspectives)、视图(Views)、...

    使用 Eclipse 插件开发环境构建模板

    在IT行业中,开发工具的选择和使用对于提升效率至关重要。...总的来说,通过Eclipse插件开发环境构建模板,开发者可以定制符合自己开发习惯的代码生成规则,提高编码效率,降低出错率,使得开发工作更加高效有序。

    Eclipse插件开发学习笔记(ch0-3)

    Eclipse是一款广泛使用的开源集成开发环境(IDE),其强大的可扩展性主要体现在丰富的插件系统。本学习笔记主要涵盖了Eclipse...在学习过程中,理论与实践相结合,不断尝试和调试,将是掌握Eclipse插件开发的关键步骤。

    开发Eclipse插件之天气预报

    本篇将基于"开发Eclipse插件之天气预报"这个主题,深入探讨Eclipse插件开发的基本流程、涉及的技术点以及如何创建一个天气预报插件。 首先,Eclipse插件开发是基于Eclipse的Plug-in Development Environment(PDE)...

    学习eclipse插件开发的原因

    1. **理解OSGi框架**:Eclipse基于OSGi框架,因此,开发者需要了解OSGi的基本概念,如模块化、服务注册与发现等,这是开发Eclipse插件的基础。 2. **创建插件项目**:在Eclipse中,可以通过“New -> Plugin Project...

    eclipse插件

    在本篇文章中,我们将深入探讨Eclipse插件的概念、开发过程以及它们如何增强Eclipse的功能。 一、Eclipse插件体系结构 Eclipse的插件体系基于OSGi(Open Service Gateway Initiative)框架,它将应用程序划分为独立...

    eclipse插件.zip

    标题 "eclipse插件.zip" 暗示了这个压缩包包含了与Eclipse集成开发环境相关的插件资源。Eclipse是一款流行的开源Java IDE,但同时也支持多种其他编程语言,其强大的扩展性得益于丰富的插件系统。这篇压缩包可能包含...

    Eclipse插件开发学习笔记(ch8-10)

    虽然没有提供第8章的完整内容,但"8 第二篇 核心技术.pdf"这部分应该涵盖了Eclipse插件开发的一些核心技术,包括插件开发环境的搭建、基本的插件结构和运行机制等。这部分内容是后续章节的基础,学习者需要扎实掌握...

    eclipse插件开发

    本篇文章将深入探讨“Eclipse插件开发”的核心概念、流程以及相关资源。 一、Eclipse插件开发基础 Eclipse插件是基于OSGi(Open Service Gateway Initiative)框架构建的,OSGi确保了插件之间的模块化和可交互性。...

    Eclipse插件开发

    在本篇讨论中,我们将深入探讨Eclipse插件开发的相关知识,包括基础概念、开发过程以及一些实用资源。 首先,我们需要理解Eclipse插件的基本结构。每个Eclipse插件都包含一组Java类,这些类实现了Eclipse插件模型中...

    Eclipse开发Groovy插件

    Eclipse插件是基于OSGi(Open Service Gateway Initiative)框架的模块化组件,它们通过扩展点(extension points)和贡献点(contribution points)与其他插件交互。开发Eclipse插件通常涉及到以下步骤: 1. **...

    Eclipse插件开发学习笔记(ch22-24)

    这一章将指导开发者如何从头开始构建一个完整的Eclipse插件,包括插件项目的设置、编写插件的清单文件、实现插件功能、进行调试和测试。通过这个实例,读者能够更好地理解Eclipse插件生命周期、服务注册以及与其他...

    eclipse及插件使用积累

    6. **插件开发**:介绍如何创建和使用自定义Eclipse插件,以满足特定开发需求。 7. **开发工具集成**:Eclipse与其他IDE(如IntelliJ IDEA)或文本编辑器(如VSCode)的协作使用。 8. **运行时环境**:如何配置和...

    Eclipse常用插件扩展点

    本篇文章将深入探讨Eclipse插件开发中的关键知识点,包括插件扩展点、RCP(Rich Client Platform)应用开发以及如何在Eclipse RCP中整合第三方库。 首先,让我们了解Eclipse插件扩展点。扩展点是Eclipse平台提供的...

    Eclipse – 整合开发工具(基础篇)

    总之,Eclipse作为一款强大的IDE,其基础篇涵盖了从安装、项目管理到代码编写、调试、版本控制、插件扩展等多个方面,是每个Java开发者必备的技能之一。通过深入学习和实践,开发者可以充分利用Eclipse的特性,提高...

    eclipse(LombozJSPJAVAWEB插件的安装与配置.pdf

    在实际开发过程中,你可能还会用到其他Eclipse插件,如Mylyn用于任务管理,Subversive或Git插件用于版本控制,以及JUnit插件进行单元测试。这些插件都可以通过Eclipse的“Install New Software”功能来添加。 总的...

    active工作流 eclipse离线插件

    描述中提到的"Eclipse插件离线安装"是指在没有网络连接或者网络条件有限的情况下,通过手动下载插件的安装包,然后在本地Eclipse环境中进行安装。这种方式适用于公司内网环境或个人需要避免频繁的在线更新。 在安装...

Global site tag (gtag.js) - Google Analytics