`
alin_ass
  • 浏览: 34584 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用emma收集webapp运行期代码覆盖率

阅读更多
开始前崇拜一下emma作者,这么牛的项目都不继续下去,文档也写的如此难懂.


好,开始正文:
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文件, 你可以拷贝回本地分析用,或者本地也用类似脚本生成该文件.
emma.jar必须是2.1,最新的是2.1.5320,否则没有后面的远程获取覆盖率数据的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:
这里代码库直接指定工程目录,但是emma可能无法识别目录内子项目内的源代码
本地的coverage.em必须和服务器上的执行代码保持一致

3.打开生成的coverage/index.html,即可查看运行期的覆盖率报表

就这么简单,不过要想实现自动收集并展示运行期覆盖率,还有一些工作要做

2
2
分享到:
评论
2 楼 careast 2013-02-21  
alin_ass 写道
emma的问题在于开发人员已经不维护了,

存在乱码和改代码重启后测试数据很难持续集成.

淘宝目前通过2次开发解决了这些问题.



可以提供一下这个工具的修正版本吗?我被这个东西搞死了,时不时来个
com.vladium.emma.EMMARuntimeException: [CLASS_STAMP_MISMATCH] runtime version of class的问题

我的邮箱:careast@163.com

谢谢
1 楼 alin_ass 2010-09-21  
emma的问题在于开发人员已经不维护了,

存在乱码和改代码重启后测试数据很难持续集成.

淘宝目前通过2次开发解决了这些问题.

相关推荐

    Android 原生webApp的运行壳

    一、Android原生WebApp运行壳原理 Android原生WebApp的运行壳主要是通过WebView组件实现的。WebView是Android SDK提供的一种可以加载并显示网页内容的控件。开发者可以利用WebView加载本地或远程的HTML文件,并且...

    webapp代码

    【标题】"Webapp代码"指的是一个基于H5技术实现的Web应用程序的源代码,它模仿了海底捞餐厅的用户界面和功能。这样的项目通常包括HTML、CSS和JavaScript等前端技术,用于创建交互式的网页应用。 【描述】"仿海底捞...

    Qt使用QtWebApp搭建Http服务器实现文件下载

    在本文中,我们将深入探讨如何使用Qt库中的QtWebApp模块来构建一个HTTP服务器,以实现文件的下载功能。Qt是一个强大的跨平台应用程序开发框架,而QtWebApp是其一个扩展,专门用于创建基于Web的应用程序,包括HTTP...

    网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端-网盘链接提取码下载 .txt

    这是一款网站转换成APP的源代码,开发语言使用Flutter,开发工具使用的是AndroidStudio,你只需要在APP源代码里面填写你的域名,即可生成即可生成APP,包括安卓或者苹果 添加或者编辑底部菜单或者悬浮按钮等等,当用户...

    2022网站转换APP源代码WebAPP源代码网站生成APP源代码Flutter项目带控制端

    这是一款网站转换成APP的源代码,开发语言使用Flutter,开发工具使用的是AndroidStudio,你只需要在APP源代码里面填写你的域名,即可生成即可生成APP,包括安卓或者苹果,与此同时我们提供了APP的控制端.你可以通过控制端...

    ios 网站套壳源码 webapp

    iOS Webapp 是一种将网页应用打包成类似原生应用的形式,用户可以在iOS设备上通过安装这个“壳”来访问和使用基于Web技术构建的应用。这种方式通常用于快速开发,或者作为原生应用的补充,特别是在不需要频繁更新...

    QtWebApp应用例程

    通过这个组件,开发者可以将QtWebApp的应用程序作为系统服务运行,即使没有用户界面,也能持续提供服务。这对于需要24/7运行的服务来说是至关重要的,例如监控系统、数据推送服务等。QtWebApp集成qtservice,使得Web...

    idea开发webapp 热部署

    idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发...

    网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端

    这是一款网站转换成APP的源代码,开发语言使用Flutter,开发工具使用的是AndroidStudio,你只需要在APP源代码里面填写你的域名,即可生成即可生成APP,包括安卓或者苹果,与此同时我们提供了APP的控制端.你可以通过控制端...

    Andriod使用WebView制作webAPP

    在Android平台上,使用WebView制作WebAPP是一种常见的方法,它允许开发者快速构建应用界面,而无需进行复杂的原生UI设计。WebView本质上是一个可以在Android应用中展示网页的组件,它可以直接加载HTML、CSS和...

    C# Webapp C# WebappC# WebappC# Webapp

    在测试和部署阶段,C# Webapp可以利用IIS(Internet Information Services)作为Web服务器运行,也可以选择更加轻量级的Kestrel服务器。持续集成和持续部署(CI/CD)工具如Jenkins或Azure DevOps可以帮助自动化构建...

    training/webapp镜像

    training/webapp镜像,方面一些内网用户无法直接pull镜像时下载: 使用方法: docker load -i training-webapp.tar.gz

    html5集合Vuejs开发商品日常卖记录、统计收入结果webapp项目代码

    【标题】:“html5集合Vuejs开发商品日常卖记录、统计收入结果webapp项目代码”这一主题涉及到现代前端开发中的关键技术,HTML5和Vue.js,以及如何构建一个实用的Web应用程序来跟踪销售数据并进行收入统计。...

    廖雪峰代码webapp搭建day10调通后的代码+注释

    【标题】"廖雪峰代码webapp搭建day10调通后的代码+注释"涉及的是一个关于Web应用程序开发的学习教程,重点在于如何构建并调试一个Web应用。在这个过程中,我们通常会用到Web框架,比如Python的Flask或Django,来简化...

    ssh webapp 先方方

    标题中的“ssh webapp 先方方”似乎是一个简化的表述,它可能指的是在Web应用程序开发中使用SSH(Secure Shell)进行远程管理或部署的过程。SSH通常用于安全地访问远程服务器,执行命令,传输文件等。Webapp则代表...

    基于Vue.js与Node.js开发的宠物领养WebApp源码+运行说明.zip

    【资源介绍】基于Vue.js与Node.js开发的宠物领养WebApp源码+运行说明.zip基于Vue.js与Node.js开发的宠物领养WebApp源码+运行说明.zip基于Vue.js与Node.js开发的宠物领养WebApp源码+运行说明.zip基于Vue.js与Node.js...

    maven-archetype-webapp-1.0.jar下载

    3. **编译与运行**:生成项目后,使用`mvn compile`编译源代码,`mvn package`打包应用,如果配置了Tomcat插件,还可以直接用`mvn tomcat7:run`命令启动内嵌的Tomcat服务器,运行Web应用。 总的来说,Maven ...

    jetty-webapp-9.3.19.v20170502-API文档-中文版.zip

    赠送源代码:jetty-webapp-9.3.19.v20170502-sources.jar; 赠送Maven依赖信息文件:jetty-webapp-9.3.19.v20170502.pom; 包含翻译后的API文档:jetty-webapp-9.3.19.v20170502-javadoc-API文档-中文(简体)版.zip;...

    Web基础——WebApp之初体验(三)

    WebApp是互联网技术的重要组成部分,它们允许用户在浏览器中直接访问和使用各种功能丰富的应用程序,无需下载和安装独立的软件。随着移动设备的普及,WebApp已经成为开发人员和用户之间连接的重要桥梁。 首先,...

    Android应用程序之WebApp开发实战

    2. 调试:使用Chrome DevTools的远程调试功能,连接到运行在Android设备上的WebView进行实时调试。 通过上述知识点的学习和实践,开发者可以更好地理解和掌握Android平台上的WebApp开发,从而打造功能丰富、性能...

Global site tag (gtag.js) - Google Analytics