1. emma的部署
http://sourceforge.net/projects/emma/files/emma-testing/
下载解压;将emma.jar emma_ant.jar放到JAVA_HOME/lib下;
2. 插桩
java -cp $JAVA_HOME/lib/emma.jar emma instr -m overwrite -cp ./es-group-0.0.1-SNAPSHOT.jar -ix -org.* -Dmetadata.out.file=coverage.em
参数解释:
-cp ./es-group-0.0.1-SNAPSHOT.jar :指明要插装的文件是es-group-0.0.1-SNAPSHOT.jar;
-ix -org.* :选择性插装,排除对org.*文件覆盖率的统计;
最后会在当前目录生成coverage.em文件;
3. 启动服务
nohup $JAVA_HOME/bin/java -Xbootclasspath/p:$JAVA_HOME/lib/emma.jar -cp .:es-group-0.0.1-SNAPSHOT.jar Main &
参数解释:
-Xbootclasspath/p:$JAVA_HOME/lib/emma.jar :优先加载
4.运行测试case之后,收集统计覆盖率
java -cp $JAVA_HOME/lib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
5.生成覆盖率文件
java -cp $JAVA_HOME/lib/emma.jar emma report -r xml -in coverage.em,coverage.ec
将在当前目录生成coverage.xml文件。