從 Ant Script 啟用程式碼涵蓋面

若要驗證您建置的程式碼是否符合您指定的程式碼涵蓋面接受準則,可以從 Ant Script 啟用程式碼涵蓋面。為此,您需要:

您也可以在工作台中檢視程式碼涵蓋面結果

配置 Ant Script 來啟用程式碼涵蓋面

若要配置 Ant Script 來啟用程式碼涵蓋面,請將下列內容新增至 CLASSPATH 環境變數:
<install_dir>/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>
並在建置檔中定義一項新作業。例如:

<taskdef name="instrument" classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask" classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>"/>

設備測試作業的格式為:

<instrument buildPath="" baseLineFile="" saveBackups="" outputDir=""/>

其中:

buildPath:
指定將收集其程式碼涵蓋面資料的檔案。建置路徑可參照類別檔名稱、jar 檔名稱或目錄名稱。它的定義方式可以像 Ant 中使用的任何其他路徑參照一樣。


baseLineFile:
指定儲存基準線檔案的路徑。基準線檔案是經過設備測試的程式碼與其比較,並針對其產生程式碼涵蓋面統計的檔案。它也用來作為報告產生 ant 作業的輸入。


saveBackups:
指定是否要將原始類別和 jar 檔重新命名為 *.bak。將 saveBackups 設定為 true 會產生備份檔;將 saveBackups 設定為 false 會導致改寫(並因此而流失)原始檔案。
附註:saveBackups 是選用的,其預設值為 false。


outputDir:
指定經過設備測試的檔案的儲存位置。依預設,經過設備測試的檔案的儲存位置會與正在設備測試中的檔案位置相同。

範例 1

在下列範例中,收集了 bin/ 中所有檔案的程式碼涵蓋面資料,基準線檔案儲存在 blfile.coveragedata 中,未產生這些檔案的備份,而經過設備測試的檔案則儲存在 coverageData_files 中。

<instrument saveBackups="false" baseLineFile="blfile.coveragedata" buildPath="bin/" outputDir="coverageData_files"/>

範例 2

在下列範例中,收集了 bin 中所有檔案的程式碼涵蓋面資料(參照名稱為 build.Dir),基準線檔案儲存在 blfile.coveragedata 中,並產生了這其中每個檔案的備份。

<path id="build.Dir"> <pathelement location="bin"/> </path>
<instrument saveBackups="true" baseLineFile="blfile.coveragedata" buildPathRef="build.Dir" />

範例 3

在下列範例中,收集了 bin/ 中所有檔案的程式碼涵蓋面資料,基準線檔案儲存在 blfile.coveragedata 中,並產生了這其中每個檔案的備份。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <pathelement location="bin"/> </buildPath> </instrument>

範例 4

在下列範例中,啟用了 bin/ 中目錄名稱包含 com 的所有子目錄的程式碼涵蓋面資料,但排除了名稱包含 Test 的子目錄中的檔案。產生了正在進行程式碼涵蓋面分析的每個檔案的備份,而基準線檔案則儲存在 blfile.coveragedata 中。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> <include name="**/*com*/*"> </fileset> </buildPath> </instrument>

範例 5

在下列範例中,啟用了 bin/bin2/ 中所有檔案(bin 的子目錄中名稱包含 Test 的檔案除外)的程式碼涵蓋面資料。產生了正在進行程式碼涵蓋面分析的每個檔案的備份,而基準線檔案則儲存在 blfile.coveragedata 中。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> </fileset> </buildPath> <buildPath> <pathelement location="bin2"/> </buildPath> </instrument>

執行 Ant Script

配置了 Ant Script 以啟用程式碼涵蓋面之後,您可以從指令行或工作台執行 Ant Script。

從指令行執行

若要從指令行執行 Ant Script:

  1. 將 JAVA_HOME 環境變數設定為安裝了 JDK 的目錄。
  2. 確保 CLASSPATH 環境變數包含 probekit.jar 檔的完整路徑和檔名。probekit.jar 檔位於 org.eclipse.hyades.probekit 子資料夾中,具有產品安裝之外掛程式資料夾的較高版本號碼及最新時間戳記。
  3. 確保 CLASSPATH 環境變數包含 JAVA_HOME(到 Java 安裝位置的路徑,如此 JAVA_HOME/bin/java 是有效的)。
  4. 確保 PATH 環境變數包含到 org.eclipse.hyades.probekit 子資料夾的完整路徑(適用於您使用的平台)。例如:
  5. 將 LLC_PLUGIN 設定為到外掛程式資料夾的路徑:
    set LLC_PLUGIN=<install_dir>\plugins

範例

ant -lib=<install_dir>\plugins\org.eclipse.hyades.probekit_<version>\probekit.jar myTarget

從工作台執行

若要從工作台執行 Ant Script:

產生程式碼涵蓋面統計

確保您的類別路徑包含下列內容:
<install_dir>\plugins\com.ibm.rational.llc.engine_1.0.0.<version_number>

若要從指令行產生程式碼涵蓋面統計,請從程式碼的上層目錄執行:

java -Dcoverage.out.file=C:\coverage_report\coverage_data.coveragedata com.ibm.rational.llc.example

附註:您可能需要設定您的 Java 來符合產品安裝的 Java。

產生程式碼涵蓋面報告

若要使用 Ant 產生報告:
下載 BIRT Runtime Report Engine 並解壓縮其內容。 設定下列環境變數:

例如,
<path id="lib.path"> <pathelement location="${env.LLC_COMMON_PLUGIN}"/> <pathelement location="${env.LLC_REPORT_PLUGIN}"/> <fileset dir="${env.BIRT_HOME}/lib" includes="*.jar"/> </path>

在建置檔中為產生程式碼涵蓋面報告定義一項新的作業,例如:

<taskdef name="code-coverage-report" classname="com.ibm.rational.llc.report.birt.adapters.ant.ReportGenerationTask" classpathref="lib.path"/>

程式碼涵蓋面報告作業的格式為:

<code-coverage-report outputDir="" coverageDataFile="" baseLineFiles=""> <filters> <filter type="" value=""/> </filters> <configurations> <configuration name="" value=""/> </configurations> </code-coverage-report>

其中:

outputDir:
指定報告結果的儲存位置。


coverageDataFile:
指定要對其產生報告的一個以上涵蓋面資料檔。它的定義方式可以像 Ant 中使用的任何其他路徑參照一樣。


baseLineFiles:
指定作為設備測試作業的一部分而產生的一個以上基準線檔案。它的定義方式可以像 Ant 中使用的任何其他路徑參照一樣。


filters:
選用:用於過濾報告結果。


filter:
type:要套用至報告的過濾器類型。

value:要套用至報告的過濾器值。
可用的過濾器:

Configurations:
選用:用於指定各種計算配置。


Configuation:
name:配置名稱。

value:配置的值。
可用的配置:

範例 1

在下列範例中,使用 coverage-data/blfile.coveragedata 作為基準線檔案,對 coverage-data/coverage.coveragedata 收集了產生的報告,報告儲存在 coverage-reports 中,並套用了臨界值為 80% 的 line_coverage_threshold 過濾器。計算程式碼涵蓋面時會排除預設建構子。

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage.coveragedata" baseLineFiles="coverage-data/blfile.coveragedata"> <filters> <filter type="line_coverage_threshold" value="80"/> </filters> <configurations> <configuration name="excludeDefaultConstructor" value="true"/> </configurations> </code-coverage-report>

範例 2

在下列範例中,使用 blfile1.coveragedatablfile2.coveragedata 作為基準線檔案,對兩個涵蓋面檔案 coverage1.coveragedatacoverage2.coveragedata 收集了產生的報告,報告則儲存在 coverage-reports 中。依預設,在計算程式碼涵蓋面時會包含預設建構子。

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage1.coveragedata;coverage-data/coverage2.coveragedata" baseLineFiles="coverage-data/blfile1.coveragedata;coverage-data/blfile2.coveragedata"> </code-coverage-report>

在工作台中檢視程式碼涵蓋面結果

若要在工作台中檢視 Ant Script 程式碼涵蓋面結果:

停用程式碼涵蓋面

若要使用 ant 作業停用經過設備測試的類別,請重新編譯專案,或將 .class 檔案取代為 .class.bak 檔案(若 saveBackups 已啟用)。

相關概念
程式碼涵蓋面指示器

相關作業
啟用程式碼涵蓋面
配置程式碼涵蓋面層次和過濾器
配置程式碼涵蓋面指示器
分析程式碼涵蓋面報告