日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]Eclipse插件开发之基础篇(3) 插件的测试与调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html

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參數設定

  

?

轉載于:https://www.cnblogs.com/wlzjdm/p/6882134.html

總結

以上是生活随笔為你收集整理的[转]Eclipse插件开发之基础篇(3) 插件的测试与调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。