emaを使ってwebappの運行期間コードのカバー率を収集します。


始まる前にemaの作者を崇拝して、このような牛のプロジェクトはすべて続けません。文書もこんなに難しいです。
はい、本文を開始します
1.試験機jbossプロジェクトのパッケージスクリプトを修正する

#!/bin/sh
BASE_HOME=/home/admin/work
SRC_HOME=$BASE_HOME/top
TARGET_HOME=$BASE_HOME/top/top-webapp/target
COPY_HOME=/home/admin/top/target
LIB_HOME=/home/admin/top/lib
LOG_HOME=/home/admin/top/logs
PATH=/opt/taobao/mvn1/bin:$PATH
JAVA_HOME=/opt/taobao/java1
export PATH
export JAVA_HOME
cd $SRC_HOME
svn up
mvn clean package -U  -Dmaven.test.skip=true -DfailIfNoTests=false

rm -rf $COPY_HOME/*
cp -r  $TARGET_HOME/top $COPY_HOME/top.war
cd $LOG_HOME/
for i in `ls  $COPY_HOME/top.war/WEB-INF/lib/top-*.jar`
        do $JAVA_HOME/bin/java -cp $LIB_HOME/emma.jar emma instr -m overwrite -cp $i 
done
cp $LIB_HOME/emma.jar $COPY_HOME/top.war/WEB-INF/lib/

cd $COPY_HOME/
tar zcf top.tgz top.war
cd $HOME/top/bin

echo "Now stoping JBoss................."

killall -9 java

sleep 5

echo "Now starting JBoss................."

./jbossctl restart
この部分に注意してください

for i in `ls  $COPY_HOME/top.war/WEB-INF/lib/top-*.jar`
        do $JAVA_HOME/bin/java -cp $LIB_HOME/emma.jar emma instr -m overwrite -cp $i 
done
cp $LIB_HOME/emma.jar $COPY_HOME/top.war/WEB-INF/lib/
ps:
この時は$LOG_にいますHOMEでcoverage.emファイルを生成し、ローカル分析用にコピーしたり、ローカルでも同様のスクリプトでファイルを生成したりすることができます。
ema.jarは2.1でなければなりません。最新のものは2.1.5 320です。そうでなければ、後の遠隔取得上書きデータのtclコマンドがありません。
2.リモートダウンロードの上書きファイル

D:\alin>java -cp emma.jar emma ctl -connect 192.168.207.107:47653 -command cover
age.get,coverage.ec

D:\alin>java -cp emma.jar emma report -r html -in coverage.em,coverage.ec -sourcepath d:\workspace\top
ps:
ここのコードライブラリは直接プロジェクトディレクトリを指定しますが、emaはディレクトリ内のサブプロジェクトのソースコードを認識できないかもしれません。
ローカルのcoverage.emはサーバー上の実行コードと一致していなければなりません。
3.生成したcoverage/index.を開けば、運行期間のカバー率表を確認できます。
このように簡単ですが、自動的に運行期間のカバー率を収集して展示するためには、いくつかの仕事があります。