Ant ½ºÅ©¸³Æ®¿¡¼­ ÄÚµå Àû¿ë ¹üÀ§ »ç¿ë

ºôµå ÁßÀÎ Äڵ尡 ÁöÁ¤µÈ ÄÚµå Àû¿ë ¹üÀ§ ½ÂÀÎ ±âÁØÀ» ÃæÁ·ÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ Ant ½ºÅ©¸³Æ®¿¡¼­ ÄÚµå Àû¿ë ¹üÀ§¸¦ »ç¿ë °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.

¶ÇÇÑ ¿öÅ©º¥Ä¡¿¡¼­ ÄÚµå Àû¿ë ¹üÀ§ °á°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.

ÄÚµå Àû¿ë ¹üÀ§¸¦ »ç¿ëÇϵµ·Ï Ant ½ºÅ©¸³Æ® ±¸¼º

ÄÚµå Àû¿ë ¹üÀ§¸¦ »ç¿ëÇϵµ·Ï Ant ½ºÅ©¸³Æ®¸¦ ±¸¼ºÇÏ·Á¸é 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

´ÙÀ½ ¿¹Á¦¿¡¼­´Â build.Dir·Î ÂüÁ¶µÈ binÀÇ ¸ðµç ÆÄÀÏ¿¡ ´ëÇØ ÄÚµå Àû¿ë ¹üÀ§ µ¥ÀÌÅͰ¡ ¼öÁýµÇ°í ±âÁؼ± ÆÄÀÏÀº 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

´ÙÀ½ ¿¹Á¦¿¡¼­´Â À̸§¿¡ Test°¡ µé¾î ÀÖ´Â ¼­ºêµð·ºÅ丮ÀÇ ÆÄÀÏÀº Á¦¿ÜÇÏ°í µð·ºÅ丮 À̸§¿¡ comÀÌ µé¾î ÀÖ´Â bin/ÀÇ ¸ðµç ¼­ºêµð·ºÅ丮¿¡ ´ëÇØ ÄÚµå Àû¿ë ¹üÀ§ µ¥ÀÌÅͰ¡ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ÄÚµå Àû¿ë ¹üÀ§ ºÐ¼®ÀÌ ¼öÇàµÇ´Â °¢ ÆÄÀÏ¿¡ ´ëÇØ ¹é¾÷ÀÌ »ý¼ºµÇ°í ±âÁؼ± ÆÄÀÏÀº blfile.coveragedata¿¡ ÀúÀåµË´Ï´Ù.

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

¿¹Á¦ 5

´ÙÀ½ ¿¹Á¦¿¡¼­´Â À̸§¿¡ Test°¡ µé¾î ÀÖ´Â binÀÇ ¼­ºêµð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀ» Á¦¿ÜÇϰí bin/ÀÇ ¸ðµç ÆÄÀϰú bin2/¿¡ ´ëÇØ ÄÚµå Àû¿ë ¹üÀ§ µ¥ÀÌÅͰ¡ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ÄÚµå Àû¿ë ¹üÀ§ ºÐ¼®ÀÌ ¼öÇàµÇ´Â °¢ ÆÄÀÏ¿¡ ´ëÇØ ¹é¾÷ÀÌ »ý¼ºµÇ°í ±âÁؼ± ÆÄÀÏÀº blfile.coveragedata¿¡ ÀúÀåµË´Ï´Ù.

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

Ant ½ºÅ©¸³Æ® ½ÇÇà

ÄÚµå Àû¿ë ¹üÀ§¸¦ »ç¿ëÇϵµ·Ï Ant ½ºÅ©¸³Æ®¸¦ ±¸¼ºÇÑ ÈÄ ¸í·ÉÇà ¶Ç´Â ¿öÅ©º¥Ä¡¿¡¼­ Ant ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸í·ÉÇà¿¡¼­ ½ÇÇà

¸í·ÉÇà¿¡¼­ Ant ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.

  1. JAVA_HOME ȯ°æ º¯¼ö¸¦ JDK°¡ ¼³Ä¡µÈ µð·ºÅ丮·Î ¼³Á¤ÇϽʽÿÀ.
  2. CLASSPATH ȯ°æ º¯¼ö¿¡ probekit.jar ÆÄÀÏÀÇ Àüü °æ·Î ¹× ÆÄÀÏ À̸§ÀÌ Æ÷ÇԵǾî ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ. probekit.jar ÆÄÀÏÀº Á¦Ç° ¼³Ä¡ÀÇ Ç÷¯±×ÀÎ Æú´õ¿¡¼­ ´õ ³ôÀº ¹öÀü ¹øÈ£¿Í ÃֽŠ½Ã°£ ¼ÒÀÎÀÌ ÀÖ´Â org.eclipse.hyades.probekit ¼­ºêÆú´õ¿¡ ÀÖ½À´Ï´Ù.
  3. CLASSPATH ȯ°æ º¯¼ö¿¡ JAVA_HOMEÀÌ Æ÷ÇԵǾî ÀÖ´ÂÁö(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 ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.

ÄÚµå Àû¿ë ¹üÀ§ Åë°è »ý¼º

Ŭ·¡½º °æ·Î¿¡ ´ÙÀ½ÀÌ Æ÷ÇԵǾî ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.
<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

Âü°í: »ç¿ëÀÚÀÇ ÀÚ¹Ù¸¦ Á¦Ç° ¼³Ä¡ÀÇ ÀÚ¹Ù¿Í ÀÏÄ¡Çϵµ·Ï ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

ÄÚµå Àû¿ë ¹üÀ§ º¸°í¼­ »ý¼º

Ant¸¦ »ç¿ëÇÏ¿© º¸°í¼­¸¦ »ý¼ºÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.
BIRT ·±Å¸ÀÓ º¸°í¼­ ¿£ÁøÀ» ´Ù¿î·ÎµåÇϰí ÇØ´ç ÄÁÅÙÃ÷¸¦ ¾ÐÃà ÇØÁ¦ÇϽʽÿÀ. ´ÙÀ½ ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇϽʽÿÀ.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°½À´Ï´Ù.
<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:
¼±ÅûçÇ×: ¿©·¯ °¡Áö °è»ê ±¸¼ºÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.


Configuration:
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.coveragedata ¹× blfile2.coveragedata¸¦ ±âÁؼ± ÆÄÀÏ·Î »ç¿ëÇÏ´Â µÎ °³ÀÇ Àû¿ë ¹üÀ§ ÆÄÀÏ coverage1.coveragedata ¹× coverage2.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 ½ºÅ©¸³Æ® ÄÚµå Àû¿ë ¹üÀ§ °á°ú¸¦ º¸·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.

ÄÚµå Àû¿ë ¹üÀ§ »ç¿ë ¾ÈÇÔ

Ant ŽºÅ©¸¦ »ç¿ëÇÏ¿© ÀνºÆ®·ç¸ÕÆ®µÈ Ŭ·¡½º¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é ÇÁ·ÎÁ§Æ®¸¦ ´Ù½Ã ÄÄÆÄÀÏÇϰųª saveBackups°¡ »ç¿ë °¡´ÉÇÑ °æ¿ì .class ÆÄÀÏÀ» .class.bak ÆÄÀÏ·Î ¹Ù²Ù½Ê½Ã¿À.

°ü·Ã °³³ä
ÄÚµå Àû¿ë ¹üÀ§ Ç¥½Ã±â

°ü·Ã ŽºÅ©
ÄÚµå Àû¿ë ¹üÀ§ »ç¿ë
ÄÚµå Àû¿ë ¹üÀ§ ·¹º§ ¹× ÇÊÅÍ ±¸¼º
ÄÚµå Àû¿ë ¹üÀ§ Ç¥½Ã±â ±¸¼º
ÄÚµå Àû¿ë ¹üÀ§ º¸°í¼­ ºÐ¼®