程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 創建Eclipse游戲插件,第4部分: 打包、測試和發布

創建Eclipse游戲插件,第4部分: 打包、測試和發布

編輯:關於JAVA

雖然大多數用戶都把 Eclipse 當成構建 Java ™ 應用程序的集成開發環境,但實際上它是更基本的東西。Eclipse 是一個用於構建插件的框架,允許擴展其功能去解決幾乎任何問題 —— 只要利用一套 API 和現成可用的庫。在這份四個部分的 “創建 Eclipse 游戲插件” 教程系列中,將解決大多數程序員每天都會遇到的一個迫切問題:如何不用切換應用程序就抽出時間玩一個迅速的視頻游戲,還能讓它不太明顯。教程中將開發一個簡單的游戲,讀取進入視圖的蟲子,並把它們打爆。游戲將在 Eclipse 中作為插件運行,這個游戲演示了如何編寫 Eclipse API,如何使用 Standard Widget Toolkit、Open Graphics Library 和 Lightweight Java Games Library。第 4 部分演示如何使用自動化過程構建和測試插件,最後對它進行打包以便發布。

開始之前

這個系列面向的是對使用 OpenGL 和 Lightweight Java Games Library(LWJGL)構建 Eclipse 游戲插件有興趣的開發人員。第 4 部分是這個系列的最後一部分,講解如何使用自動化過程對插件進行構建和單元測試,以及如何對它進行打包以便發布。

關於本系列

在這個四部分的系列中,介紹用來創建特性完整的 Eclipse 插件的基本技術、工具和庫,將使用 Standard Widget Toolkit(SWT)和 OpenGL 庫提供圖形。第 1 部分 介紹如何構建簡單視頻游戲的框架,通過創建插件,可以在 Eclipse 內部啟動並玩這個游戲。第 2 部分 在第 1 部分創建的基本框架基礎上,開始用 OpenGL 添加實際的可視元素。第 3 部分 添加實際的游戲元素,讓用戶能夠與第 2 部分創建的圖形進行交互。

關於本教程

在本教程中,我們將以前開發的所有東西組合在一起、進行測試並准備發布。具體地說,我們將:

創建 JUnit 測試用例以便對插件進行單元測試。

創建一個 Eclipse 特性項目以便管理插件的打包。

使用 Plug-in Development Environment(PDE)提供的構建支持開發一個自動化構建和測試過程。

前提條件

這份教程假設讀者擁有 Java 語法和編碼以及 Eclipse 插件編程的基本知識,正如這個系列的 第 1 部分 所示。還需要了解如何用 JUnit 進行單元測試以及 Apache Ant 腳本。圖形編程的知識會有益,但並不是必需的。不要求關於 OpenGL 的知識。

系統需求

需要以下工具:

Eclipse Eclipse 是用來創建第 1 部分的插件的框架。現在要繼續利用 Eclipse 構建游戲插件。請下載 Eclipse V3.2 M3 或以上版本。Eclipse SWT SWT 是 Eclipse 部件包,用於制作窗口,由 IBM 捐贈給 Eclipse。請下載 SWT 3.2 M3 或以上版本。Eclipse OpenGL 需要用 OpenGL 庫來創建形狀等等。請下載實驗性的 org.eclipse.opengl binding, version 0.5 for SWT 3.2。使用 OpenGL 的 Eclipse 示例插件 下載 使用 OpenGL 的帶有一個視圖的示例插件。將用這個插件中的源代碼作為構建自己的定制 OpenGL 布景的框架。Java 技術 Eclipse 和它的所有插件都需要 Java 技術。請從 Sun Microsystems 或 IBM 下載 Java。Eclipse Test Framework 這個包提供對插件進行自動測試的支持。可以從 Eclipse.org 獲得它並添加到 Eclipse SDK 中。Info-ZIP 在沒有本機 zip/unzip 命令的平台上,自動化構建腳本使用這個實用程序。從 Info-ZIP 下載它。

概述和設置

在 第 3 部分 中,我們完成了插件的編寫。現在,要對它進行單元測試、構建和打包以便發布。首先,將在 JUnit 框架的幫助下為插件開發單元測試。這會幫助您熟悉 Eclipse 的 JUnit 支持。接下來,將把插件導出到 Eclipse IDE 中,這樣您就可以開始在工作的間隙玩這個射擊游戲。為了可以使用 Eclipse 的 Configuration Manager 來管理和更新插件,我們將為它創建一個特性。還要學習構建和發布插件的其他選項。最後,將開發一個自動化的構建和測試過程,這樣無需手工干涉就可以完成構建和測試。

安裝必需的其他軟件

除了前幾部分中安裝的系統需要的所有軟件之外,還需要安裝 Eclipse 自動化測試框架(org.eclipse.test),可能還需要 Info-ZIP 實用程序。這兩者都可以從 “系統需求” 中列出的位置免費下載。

對插件進行單元測試

優秀的開發人員可以快速修復 bug,但是偉大的開發人員會編寫單元測試來檢查他們開發的代碼,從而避免 bug 出現。實際上,“測試優先” 方式甚至主張在編寫實際功能之前就創建單元測試,以此作為捕捉驅動組件開發的低級功能需求的方法。

單元測試可以捕獲組件的預期行為,確保開發出的應用程序與預期一致。如果您的插件要公開一個供其他人使用的公共 API,那麼單元測試就更重要了。在這種情況下,單元測試可以幫助確保插件確實符合公布的約定,而且可以作為客戶機使用插件的示例。

即使您開發的插件沒有公開公共的 API,對它進行單元測試仍然是好想法。在本節中,我們將研究 Eclipse 為進行插件的單元測試提供的工具。

Eclipse 中的 JUnit 支持

JUnit 是 Java 語言的單元測試框架的事實標准。各個單元測試封裝在稱為測試用例(Test Case) 的類所實現的方法中,這些單元測試組合成測試套件(Test Suite)。除了許多用來對代碼的正確行為進行判斷的工具方法之外,JUnit 框架還提供了一種機制,可以自動地發現和執行測試用例(甚至整個測試套件)並收集結果。由於這個框架具有很強的靈活性,可以在許多環境中交互式或自動地運行 JUnit 測試。

Eclipse 將 JUnit 集成到它的 Java Development Tools(JDT)中,從而可以在 IDE 中直接開發和執行 JUnit 測試。具體地說,可以使用 Test Case 向導為類創建 JUnit 測試用例。這個向導還可以為這個類公開的所有公共方法生成存根。可以使用 Test Suite 向導將幾個測試用例組合為套件。在添加或刪除任何測試用例時,可以輕松地重新生成套件。

JDT 還提供了一個用來執行 JUnit 測試的特殊啟動器。在 JUnit 視圖中可以看到執行的進度和結果(見圖 1),這個視圖是由啟動器自動激活的。這個視圖顯示測試序列和層次結構,以及每個測試的結果:成功、失敗或異常。還會為每個失敗的測試提供堆棧跟蹤。

圖 1. Eclipse JUnit 視圖

清單 8. 提供適合自己平台的軟件版本的 URL

eclipseURL=http://download.eclipse.org/eclipse/downloads/
drops/S-3.2M5a-200602231656
eclipseBuildId=3.2M5a
eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip

現在,將 skipBase 屬性設置為 false,以便執行 getBaseComponents 目標。注意,只有在腳本沒有找到基本安裝時才會執行獲取操作。

下一個任務是從主構建腳本調用測試。customTargets.xml 中的 test 目標正是用於這個用途。將構建出的產品解壓到測試安裝中,然後調用 test.xml 腳本,見清單 9。

清單 9. 有條件地執行單元測試套件

<target name="test" if="runTests">
    <unzip
  src="${buildDirectory}/${buildLabel}/com.ibm.eclipse.shootout-${buildId}.zip"
  dest="${base}"/>
    <unzip
  src="${buildDirectory}/${buildLabel}/com.ibm.eclipse.shootout.tests-${buildId}.
zip" dest="${base}"/>
    <ant
  antfile="${base}/eclipse/plugins/com.ibm.eclipse.shootout.tests_1.0.0/test.xml"
>
     <property name="os" value="${baseos}" />
     <property name="ws" value="${basews}" />
     <property name="arch" value="${basearch}" />
   </ant>
</target>

注意,我們讓這個目標根據 runTests 屬性有條件地執行,這樣就可以只在需要時執行測試。所以,要想運行包含測試的完整構建過程,應該執行以下命令:

java -jar ../../../startup.jar -application org.eclipse.ant.core.antRunner
  -Dbuilder=<full path to your builder project> -DrunTests=true

結束語

在本教程中,我們為 Shootout 插件創建了單元測試。了解了 Eclipse 特性以及它們在 Eclipse 配置管理中扮演的角色。為了使插件便於管理並能夠通過更新站點進行發布,我們將插件組裝成特性。在研究了手工構建和測試插件的選項之後,我們使用 PDE 構建工具開發了一個自動化的構建和測試過程,這個過程與 Eclipse.org 用來對自己的交付文件進行構建、測試和打包的過程很相似。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved