基于JUnit和Ant测试程序正在运行使用Kieker(AspectJ)监测方法
这篇日志的目的从标题里能够看出来。这也是我们实验须要,必须总结一下,方便其它师弟师妹在这个基础上做实验。
我已经介绍了非常多基于Kieker的监控方法,这里以Prefuse这个开源可视化Java框架为例,总结怎么基于JUnit和Ant实现对开源软件自带測试用例运行过程的监控。
在这个链接中,选择最新的版本号下载(Prefuse已经有些年头没更新了。只是这个框架确实还不错)。
解压之后用Eclipse打开其build.xml,发现这个项目的build.xml结构还比較奇葩。假设执行ant all,能够生成全部的class文件和JAR包(还得简单解决一下字符集的问题)。细致看一下,发现确实将全部代码编译了。可是build.xml里面没有target是关于測试的。我们注意到解压后有一个test目录。里面确实有些測试用例。比如这里:prefuse-beta\test\test\prefuse的All_Prefuse_Tests.java,打开之后看到:import junit.framework.Test;
说明使用的是JUnit 3,随便找到一个JUnit 3的JAR包,放到lib文件夹下。然后我们就能够自己编译这些測试类了。
首先,我们自己在build.xml文件里添加一个target(须要相应地在build文件夹下建立一个testcase文件夹):
<target name="compile-testcase">
<javac
classpath="lib/junit.jar:build/prefuse.jar:build/demos.jar"
srcdir="test"
destdir="build/testcase"/>
</target>
这个target的详细配置非常easy,我就不介绍了。以下我们讲讲怎么用Kieker监控这些測试用例的运行。首先,像这篇日志里讲的这样:将”kieker-1.4″下”dist”目录下的”kieker-1.4.jar”和”lib”目录下的”aspectjweaver-1.6.11.jar”和”commons-logging-1.1.1.jar”三个jar包拷贝进解压后目录中的”lib”目录下。我们稍晚时候再说说META-INF目录的位置。
要实现监控事实上非常easy,我们新建一个target,名字随便起:
<target name="test2" depends="compile-testcase">
<junit
printsummary="yes"
errorProperty="test.failed"
failureProperty="test.failed"
fork="true"
haltonfailure="yes">
<formatter type="plain"/>
<jvmarg value="-XX:-UseSplitVerifier"/>
<classpath path="lib/junit.jar:lib/commons-logging-1.1.1.jar:lib/kieker-1.4.jar:build/testcase:build/prefuse/classes:build/demos/classes"/>
<jvmarg value="-javaagent:lib\aspectjweaver-1.6.11.jar"/>
<test todir="test-results" name="test.prefuse.All_Prefuse_Tests"/>
</junit>
<fail message="Tests failed!" if="test.failed"/>
</target>
这里有些细节我就不讲了,事实上都非常easy。
简单来讲,就是用aspectjweaver这个jar包做Javaagent,然后在classpath中包括kieker的jar包,以及測试类和被測试类。-XX:-UseSplitVerifier在这里使用的原因能够參看 p=406" style="border:0px; font-family:inherit; font-style:inherit; font-weight:inherit; margin:0px; outline:0px; padding:0px; vertical-align:baseline; color:rgb(25,130,209); text-decoration:none">这篇日志
须要指出的是,之前那篇日志里提到的META-INF目录,简单来讲,放到classpath中就能够。所以事实上我们放到build/demos/classes这种目录下即可(由于在上面target中已经将其包括到了classpath中),问题是,我们放到build.xml目录下能够吗?答案是能够的。将其放到解压后根目录下。然后再建立一个test-results目录(和这个相应:<test
todir=”test-results”),执行ant test2,就能够看到測试用例的执行结果了。我们能够看到,执行了34个測试用例,当中fail了一个。同一时候也能够看到生成了监控数据。
最后总结一下META-INF这个问题。实践证明:在Windows系统中。在基于Ant运行Java class的时候,会自己主动将build.xml文件夹所在文件夹增加classpath,可是假设通过Java命令行,则须要增加“.”来增加当前文件夹。
可是。我又測试了一下在Mac OS X下的结果,发现必须增加“.”来增加当前文件夹,另外,Windows中路径的正反斜杠在Ant中我们能够。但在Mac OS X我们只能使用反斜杠“/”。这是一个小题外话,结论。
版权声明:本文博主原创文章。博客,未经同意不得转载。
基于JUnit和Ant测试程序正在运行使用Kieker(AspectJ)监测方法的更多相关文章
- 【Junit_Ant】使用Eclipse自带的Junit和Ant,生成测试报告
使用Eclipse自带的Junit和Ant,生成测试报告 1.点击要测试的工程,右击,选择Export 2.在弹出的页面里,点击General,选择Ant Buildfiles,点击Next 3.在下 ...
- Ant打包可运行的Jar包(加入第三方jar包)
本章介绍使用ant打包可运行的Jar包. 打包jar包最大的问题在于如何加入第三方jar包使得jar文件可以直接运行.以下用一个实例程序进行说明. 程序结构: 关键代码: package com.al ...
- Ant编译utf-8非法字符:/65279 解决方法
原文链接:http://blog.csdn.net/xiyuan1999/article/details/5989336 Ant编译utf-8非法字符:/65279 解决方法 使用ant编译j ...
- 64位Win7下运行ASP+Access网站的方法
64位Win7下运行ASP+Access网站的方法 近日系统升级为WIN7 64位之后,突然发现原本运行正常的ASP+ACCESS网站无法正常连接数据库. 网上搜索多次,终于解决了问题,总结了几条经验 ...
- Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具
Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. mysqlreport是mysql性能监测时最常用的工具,对了解mysql运行状态和配置调整都有很大 ...
- vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...
- usb设备运行不正常的解决方法(转)
add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是 ...
- windows运行打开服务命令的方法 :
windows运行打开服务命令的方法 : 在开始->运行,输入以下命令 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup------ ...
- 基于百度EasyDL定制化图像识别平台的海洋鱼类识别方法
[目的]鱼类识别对渔业资源的开发利用有着重要的意义.针对海底环境恶劣.拍摄环境亮度低.场景模糊的实际情况导致海底观测视频品质差,视频中的鱼类识别难的问题以及现有鱼类识别方法存在的鱼类标注数据集过少导致 ...
随机推荐
- vs2008,2010,2012安装包下载
近期在csdn学院当老师啦.把自己以学到的东西总结一下,录个视频给大家,也当发一下福利.这些以后都是自己无形的財产.哈哈. 安装与下载编程工具 Vs2008下载地址:http://pan.baidu. ...
- 4、linux开发中常用指令
1.cat /proc/device 可以查看各个全部字符设备和块设备,在register_chrdev中设置的名字在打印出来的信息中可以看到:2.top 可以看各个应用程序占用CPU量及PID等信息 ...
- 解决java中ZipFile解压缩时候的中文路径和乱码问题
JAVA中对jar文件或zip文件解压的时候,能够使用JDK内置的API:JarFile和ZipFile,在windows下解压这2种格式文件的时候,常常报下面错误: Exception in thr ...
- 【u125】最大子树和
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课 ...
- JSON序列化自己主动过滤NULL值
使用Newtonsoft.Json.dll 序列化为json时主动将NULL值过滤掉.详细做法: var jSetting = new JsonSerializerSettings {NullValu ...
- [CSS] Design for Mobile First with Tachyons
Tachyons provides extensions (-ns, -m, and -l) to many of its classes to help you design for respons ...
- 【solr基础教程之九】客户端 分类: H4_SOLR/LUCENCE 2014-07-30 15:28 904人阅读 评论(0) 收藏
一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...
- CreateFeature与CreateFeatureBuffer区别
转自原文CreateFeature与CreateFeatureBuffer区别 CreateFeature主要用于插入一条数据,CreateFeatureBuffer住哟啊用于插入多条数据,详细说明见 ...
- ubuntu里面设置颜色
比方我是这么写的:base_color:#FAF9DE;selected_bg_color:#008522 (背景为浅黄色,选择框为绿色) 写完之后按回车确认,立即生效! 这里另一个极其严重的 bug ...
- ios开发之多线程---GCD
一:基本概念 1:进程:正在运行的程序为进程. 2:线程:每个进程要想执行任务必须得有线程,进程中任务的执行都是在线程中. 3:线程的串行:一条线程里任务的执行都是串行的,假如有一个进程开辟了一条线程 ...