怎么用eclipse编写java程序测试Java软件

请问JAVA编程的软件用什么来测试?_百度知道
请问JAVA编程的软件用什么来测试?
我有更好的答案
智能职涯(bigdata-job)解释用Eclipse软件来进行Java编程程序的测试
编程软件用什么测试?你说的应该是java用什么软件编程吧!java是用MyEclipse、Eclipse软件等。
编程软件希望采纳,谢谢!
其他类似问题
为您推荐:
java编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
本文主要介绍了如何使用 JaCoCo 分析 Java 项目的单元测试覆盖率,同时介绍了如何在 Eclipse 中安装和使用
EclEMMA,让开发人员可以直观地看到单元测试的覆盖情况。
, 软件工程师,
王群锋,现供职于 IBM,从事下一代统计预测软件的开发。曾在 DW 上发表,合作发表过《被误解的 NodeJS 》、《深入浅出 JavaScript 中的 this》、 《LESS CSS 框架简介》等文章,获得读者的较高评价。
前言随着敏捷开发的流行,编写单元测试已经成为业界共识。但如何来衡量单元测试的质量呢?有些管理者片面追求单元测试的数量,导致底下的开发人员投机取巧,编写出大量的重复测试,数量上去了,质量却依然原地踏步。相比单纯追求单元测试的数量,分析单元测试的代码覆盖率是一种更为可行的方式。JaCoCo(Java
Coverage)就是一种分析单元测试覆盖率的工具,使用它运行单元测试后,可以给出代码中哪些部分被单元测试测到,哪些部分没有没测到,并且给出整个项目的单元测试覆盖情况百分比,看上去一目了然。EclEmma
是基于 JaCoCo 的一个 Eclipse 插件,开发人员可以方便的和其交互。因此,本文先从 EclEmma 入手,给读者一个直观的体验。使用 EclEmma 在 Eclipse 中查看单元测试覆盖率EclEmma 是基于 JaCoCo 的 Eclipse 插件,使用它,开发人员可以直观地看到单元测试的覆盖情况。安装 EclEmma打开 Eclipse 的软件市场,在其中搜索 EclEmma,找到后完成安装,如下图所示:图 1. 安装 EclEmma安装完成后,Eclipse 的工具条里会多出下面这样一个图标:图 2. Coverage 图标分析单元测试覆盖率成功安装 EclEmma 后,就可以试着用它来分析项目的单元测试覆盖率了。为了方便演示,我们使用 Eclipse 创建了一个标准 Java
工程。其中包含一个数学工具类,用来计算三个数中的最大值,代码如下:清单 1. 数学工具类package com.dw.
public class MathUtil {
public static int max(int a, int b, int c){
if(a & b){
if(a & c){
if(b & c){
}可以看到,这里的算法稍微有点复杂,使用到了多个条件判断分支,因此,特别适合为其编写单元测试。第一个版本的单元测试如下:清单 2. 第一个版本的单元测试package com.dw.
import static org.junit.Assert.*;
import org.junit.T
public class MathUtilTest {
public void test_max_1_2_3() {
assertEquals(3, MathUtil.max(1, 2, 3));
}试着运行一下单元测试覆盖率分析工具:40.0%!似乎不太理想。展开分析报告,双击后在编辑器里可以看到覆盖情况被不同的颜色标识出来,其中绿颜色表示代码被单元测试覆盖到,黄色表示部分覆盖,红色则表示完全没有覆盖到,如下图所示:图 3. 单元测试覆盖率报告让我们尝试多加一些单元测试,来改善这种情况,请看下面第二个版本的单元测试:清单 3. 第二个版本的单元测试package com.dw.
import static org.junit.Assert.*;
import org.junit.T
public class MathUtilTest {
public void test_max_1_2_3() {
assertEquals(3, MathUtil.max(1, 2, 3));
public void test_max_10_20_30() {
assertEquals(30, MathUtil.max(10, 20, 30));
public void test_max_100_200_300() {
assertEquals(300, MathUtil.max(100, 200, 300));
}测试覆盖率还是
40.0%!虽然我们额外再加了两个测试,但覆盖率没有半点提升,这些单元测试其实是重复的,它们在重复测试同一段代码。如果单纯追求单元测试的数量,那么这无疑会给管理者造成错觉,他们觉得单元测试的数量增加了,软件的质量更有保证了;而对于那些喜欢偷懒的程序员,也蒙混过关,但却给软件质量埋下了隐患。让我们删掉这些重复的单元测试,重新思考一下怎么测试这个方法。首先我们要测试正常情况,这其中又包含 3
种情况:第一个参数最大,第二个参数最大,以及最后一个参数最大。然后我们还需测试几种特殊情况,比如三个参数相同,三个参数中,其中两个相同。让我们照此思路重新编写单元测试:清单 4. 第三个版本的单元测试package com.dw.
import static org.junit.Assert.*;
import org.junit.T
public class MathUtilTest {
public void test_max_1_2_3() {
assertEquals(3, MathUtil.max(1, 2, 3));
public void test_max_1_3_2() {
assertEquals(3, MathUtil.max(1, 3, 2));
public void test_max_3_2_1() {
assertEquals(3, MathUtil.max(3, 2, 1));
public void test_max_0_0_0(){
assertEquals(0, MathUtil.max(0, 0, 0));
public void test_max_0_1_0(){
assertEquals(1, MathUtil.max(0, 1, 0));
}再次运行单元测试分析工具:75.0%!这次比以前有了很大提升,但是结果还不能令人满意,打开分析报告可以看到,有一个分支还是没有覆盖到,如图所示:图 4. 单元测试覆盖率报告阅读代码可以看出,这种情况是指第一个参数大于第二个参数,却小于第三个参数,因此我们再增加一个单元测试:清单 5. 再增加一个单元测试@Test
public void test_max_2_1_3() {
assertEquals(3, MathUtil.max(2, 1, 3));
}再运行一遍单元测试分析工具:100.0%!终于我们的单元测试达到了全覆盖,这样我们对自己开发的代码更有信心了。当然,我们在这里并不是为了单纯的追求这个数字,在增加单元测试覆盖率的诱导下,我们重新理清了测试的步骤,写出了更有意义、更全面的单元测试。而且根据单元测试分析工具给的反馈,我们还发现了先前没有想到的情形。因此,单元测试的覆盖率并不只是一个为了取悦管理者的数据,它实实在在地帮助我们改善了代码的质量,增加了我们对所编写代码的信心。给管理者的单元测试覆盖率报告管理者天生喜欢阅读报告。他们不会屈尊坐在你的办公桌前,让你向他展示 Eclipse
中这一片花花绿绿的东西。而且这份报告对他们至关重要,他们需要用它向上级汇报;年底回顾时,他们也可以兴奋地宣称产品的单元测试覆盖率增加了多少。作为一名开发人员,我们很大一部分工作量就在于满足管理者的这种需求。因此,本节我们讨论如何将
JaCoCo 集成到 Ant 脚本中,生成漂亮的单元测试覆盖率报告。准备工作在集成 JaCoCo 前,必须先确保你的 Java 工程有一个可执行的 Ant 构建脚本。一个简单的 Ant
构建脚本一般会执行如下任务:编译(包括编译工程代码和测试代码)、打包和执行单元测试。下面是本文示例 Java 项目所用的 Ant
构建脚本,读者可结合自己的项目及文件路径,在此基础之上进行修改。清单 6. build.xml&project name="math" basedir="." default="junit"&
&!--预定义的属性和 classpath --&
&property name="src.dir" value="src" /&
&property name="test.dir" value="test" /&
&property name="build.dir" value="build" /&
&property name="classes.dir" value="${build.dir}/classes" /&
&property name="tests.dir" value="${build.dir}/tests" /&
&property name="jar.dir" value="${build.dir}/jar" /&
&property name="lib.dir" value="lib" /&
&path id="classpath"&
&fileset dir="${lib.dir}" includes="**/*.jar" /&
&!--清除上次构建 --&
&target name="clean"&
&delete dir="${build.dir}" /&
&!--编译代码,包括单元测试 --&
&target name="compile" depends="clean"&
&mkdir dir="${classes.dir}" /&
&mkdir dir="${tests.dir}" /&
&javac srcdir="${src.dir}" destdir="${classes.dir}" /&
&javac srcdir="${test.dir}" destdir="${tests.dir}"&
&classpath&
&path refid="classpath" /&
&path location="${classes.dir}" /&
&/classpath&
&!--打包 --&
&target name="jar" depends="compile"&
&mkdir dir="${jar.dir}" /&
&jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"&
&!--运行单元测试 --&
&target name="junit" depends="jar"&
&junit printsummary="yes"&
&classpath&
&path refid="classpath"/&
&path location="${classes.dir}" /&
&path location="${tests.dir}" /&
&/classpath&
&batchtest fork="yes"&
&fileset dir="${test.dir}" includes="**/*Test.java"/&
&/batchtest&
&/project&集成 JaCoCo首先需要从 然后就是使用
需要的版本,然后将下载得到的压缩文件解压,将其中的
jacocoant.jar 拷贝至 Java 工程下存放第三方 jar 包的目录,在示例工程里,我有一个和 src 平级的 lib 目录,jacocoant.jar
就放到了这个目录底下,读者可根据自己的项目组织结构做相应调整。然后我们需要在 Ant 构建脚本中定义新的任务:清单 7. 定义新的构建任务&taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"&
&classpath refid="classpath" /&
&/taskdef&现在就可以在 Ant 构建脚本中使用 JaCoCo 了。需要注意的是,为了避免命名冲突,需要给 Ant 构建脚本加入新的 XML 命名空间:清单 8. 加入新的 JaCoCo 命名空间&project name="math" basedir="." xmlns:jacoco="antlib:org.jacoco.ant" default="junit"&我们主要使用 JaCoCo
的两个任务:首先是jacoco:coverage,用来生成单元测试覆盖率数据,这是一个二进制文件,为了生成从该文件生成报表,我们还要调用另外一个任务jacoco:report,它的输入为jacoco:coverage生成的二进制文件,输出报表。报表有多种格式可选,可以是
HTML、XML、CSV 等。具体的脚本如下:清单 9. 使用 JaCoCo 生成测试覆盖率和报表&jacoco:coverage destfile="${build.dir}/jacoco.exec"&
&junit fork="true" forkmode="once" printsummary="yes"&
&classpath&
&path refid="classpath" /&
&path location="${classes.dir}" /&
&path location="${tests.dir}" /&
&/classpath&
&batchtest fork="yes"&
&fileset dir="${test.dir}" includes="**/*Test.java"/&
&/batchtest&
&/jacoco:coverage&
&jacoco:report&
&executiondata&
&file file="${build.dir}/jacoco.exec"/&
&/executiondata&
&structure name="dw demo"&
&classfiles&
&fileset dir="${classes.dir}"/&
&/classfiles&
&sourcefiles encoding="UTF-8"&
&fileset dir="${src.dir}"/&
&/sourcefiles&
&/structure&
&html destdir="${build.dir}"/&
&/jacoco:report&JaCoCo
的任务定义非常清晰,在这里略作说明。首先需要将原来的junit任务嵌入jacoco:coverage,而且需要指定fork="true",代表单元测试需要另起一个
JVM 执行,否则 JaCoCo 就会执行失败。destfile="${build.dir}/jacoco.exec"指定生成的测试覆盖率文件输出到什么地方,后面生成报告的时候需要输入该文件的地址。然后就是使用 jacoco:report 生成报告,指定前面任务生成的单元测试覆盖率文件、编译好的类文件以及源代码,最后选择一种格式,这里使用
html,生成报告。打开报告的存放路径,就可以看到如下所示的单元测试覆盖率报告:图 5. HTML 版的单元测试覆盖率报告和同类产品比较市面上流行的单元测试覆盖率工具还有
和 。和它们相比,JaCoCo 有如下优势: JaCoCo 拥有友好的授权形式。JaCoCo 使用了 Eclipse Public License,方便个人用户和商业用户使用。而 Clover 对于商业用户是收费的。 JaCoCo 被良好地集成进各种工具中。在 Java 社区里,很多流行的工具都可以集成 JaCoCo,比如
SonarQube、Jenkins、Netbeans、Eclipse、IntelliJ IDEA、Gradle 等。 JaCoCo 社区非常活跃,它是目前唯一支持 Java 8 的单元测试覆盖率工具。而且关于 JaCoCo 的文档相对较多,降低了学习门槛。结束语本文为大家介绍了如何使用 JaCoCo 分析项目的单元测试覆盖率,文章先从 JaCoCo 的 Eclipse 插件 EclEmma
开始,直观地介绍了如何一步步提高单元测试质量,最终达到对代码的全覆盖;然后为大家介绍了如何将 JaCoCo 集成到 Ant 构建脚本中,生成漂亮的单元测试覆盖率报告。但是使用 JaCoCo 只是第一步,重要的是开发人员能够根据工具所给的反馈,不断改进自己的单元测试,写出高质量的代码。
参考资料 参考 ,jazz.net 上一篇关于单元测试的文章,其中也提到了单元测试覆盖率,需要 jazz 帐号登录才可访问。参考 ,EclEmma 官方网站。参考 ,维基百科上关于 JaCoCo 的介绍,并且和其他类似工具作了对比。参考 ,JaCoCo 提供的 Ant 相关任务。参考 ,将 JaCoCo 集成到 Maven 的教程。参考 ,JaCoCo 官网提供的示例构建脚本,展示了 JaCoCo 的基本用法。参考 ,Ant
官网提供的简易教程,帮助新手使用 Ant 构建 Java 项目。访问 developerWorks ,了解关于信息管理的更多信息,获取技术文档、how-to
文章、培训、下载、产品信息以及其他资源。:获取更多软件下载。 加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Java technologyArticleID=980366ArticleTitle=JaCoCo:分析单元测试覆盖率的利器publish-date=java编译器
java编译器是java编程中必须要使用到的一款辅助工具,好的java编译器可以帮助你更好的进行编程!现在有很多的朋友都是不知道网上现在那款java编译器最好使用的,那么小编就给新学者以及大神级的朋友们推荐一些现在非常的火爆的java编译器,有需要的朋友就赶快来下载看看吧!‍
共有12个相关软件
类型:文字处理大小:2.6M语言:中文时间:06-12评分:6.6
软件大小:174M
软件语言:中文
Eclipse是一个基于Java的可扩展开发平台,Eclipse是在OSI认可的通用公共许可证(CPL)1.0版之下被授予许可证
软件大小:155.7M
软件语言:中文
JDK(Java Development Kit)是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK作为JAVA
软件大小:2.6M
软件语言:中文
EditPlus 是一款为 Internet 准备的、 运行于 Windows 下的 32 位文本、HTML 编辑器, 同时也是程序员们非常
软件大小:4.5M
软件语言:中文
JCreator 专业版是适合于 Java 语言编程初学者的IDE工具。 她为使用者提供了大量强劲的功能,例如: 项目管理
软件大小:58.2M
软件语言:中文
这是一款跨平台集成开发java程序的工具,当然也可用于C/C++,PHP等语言的开发。
netbeans简介NetBeans 平台
软件大小:3.7M
软件语言:中文
适用手机型号:此游戏适用于诺基亚,摩托罗拉,索爱,三星等机型,30,60,
软件大小:730KB
软件语言:中文
MyEclipse对于java开发和程序员来说应该非常熟习,因为MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Ec
软件大小:12.0M
软件语言:中文
Notepad++ 是一款Windows环境下免费开源的代码编辑器,小编此次提供的简易开源编辑器(Notepad++)是中文版本
软件大小:50KB
软件语言:中文
字符串过滤和替换小工具其实就是用正则表达式来过滤和替换的字符的。而他最大特点就是支持任意文件类型,特
软件大小:635KB
软件语言:中文
js程序的调试是相当郁闷的,因为首先这种语言语法比较灵活,它是一种弱类型的脚本语言,很多错误是无法控制
软件大小:9.1M
软件语言:英文
这是一款实用的java开发反编译破解工具,运行DJ.exe直接用,是破解的,已经绿化破解DJ Java Decompiler。
软件大小:4.7M
软件语言:中文
java编译词法分析器是一款非常实用的java编程辅助工具,主要功能为可帮助编程人员来进行JAVA的语言分析,可
01-1301-0801-0701-0601-0501-0401-0301-0201-0212-3112-3012-2912-2812-2712-2612-2512-2412-2312-2212-2112-2012-1912-1812-1712-1610-3110-3110-2510-2410-2410-2410-2410-2410-2410-2410-2210-2210-2210-2210-2210-2210-2210-2210-2210-2210-2210-2210-2110-2110-1910-1910-1910-1810-1810-1810-1810-1810-1810-1710-15
同类热门专题怎么用Eclipse编写测试Java软件_百度知道
怎么用Eclipse编写测试Java软件
提问者采纳
很简单的。直接下载myeclipse10 再下一个破解工具上面有操作方法。只是需要配一下jdk和tomcat就能使用了。 然后可以搜一个myeclipse配置方法就可以了
来自团队:
其他类似问题
为您推荐:
下奶的相关知识
其他1条回答
用Junit,详细可以查一下JUnit测试的方法,网上例子很多。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 eclipse编写java程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信