`

(转)Java单元测试,测试环境、自动构建脚本

 
阅读更多

本文转自http://blog.csdn.net/ybygjy/article/details/6135915

 

Java单元测试,测试环境、自动构建脚本

Java单元测试, 测试环境、自动执行脚本

如何进行单元测试,如何批量执行测试用例?

2011年 01 月 13 日

文章内容描述了单元测试环境以及单元测试自动构建脚本

单元测试

[好处]
最早发现问题
利于软件维护
[缺点]
麻烦、增加工作量

测试环境

[工具包]
JUnit4 单元测试框架
HttpUnit 辅助进行Web单元测试
Ant1.7.1 实现自动化构建

辅助单元测试

[考虑测试资源]
数据源的绑定,像J2EE系统都会有一个Web容器,如Resin/Tomcat等,这些容器都会有自己的java.naming.InitialContextFactory 实现,可以直接使用相关Web容器的JNDI实现完成数据源的绑定。
[模块间的依赖关系]
这块可考虑扩展JUnit来实现,有篇文章就是讨论扩展JUnit主题,见参考资料

自动构建脚本

目录结构

目录结构

Ant脚本  (下载文件)

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < project   default = "main" >   
  3.     < tstamp >   
  4.         < format   property = "date"   pattern = "yyyy-MM-dd hh:mm:ss"   locale = "zh"   />   
  5.     </ tstamp >   
  6.     < property   name = "project"   value = "TestUnit"   />   
  7.     < property   name = "project.basedir"   value = "D:/work/workspace/mywork"   />   
  8.     < property   name = "project.build"   value = "${project.basedir}/build"   />   
  9.     < property   name = "project.build.lib"   value = "${project.build}/lib"   />   
  10.     < property   name = "project.build.tmpdir"   value = "${project.build}/tmp"   />   
  11.     < property   name = "project.build.tmpdir.confdir"   value = "${project.build}/tmp/WEB-INF"   />   
  12.     < property   name = "project.webroot"   value = "${project.basedir}/WebContent"   />   
  13.     < property   name = "project.webroot.confdir"   value = "${project.webroot}/WEB-INF"   />   
  14.     < property   name = "project.webroot.lib"   value = "${project.webroot.confdir}/lib"   />   
  15.     < property   name = "project.junit.output"   value = "${project.webroot}/junit"   />   
  16.     <!--global conf-->   
  17.     < path   id = "project.compile.lib" >   
  18.         < pathelement   path = "${classpath}"   />   
  19.         < fileset   dir = "${project.webroot.lib}" >   
  20.             < include   name = "**/*.jar"   />   
  21.         </ fileset >   
  22.     </ path >   
  23.     < path   id = "project.compile.testlib" >   
  24.         < pathelement   path = "${project.build.tmpdir}"   />   
  25.         < fileset   dir = "${project.build.lib}" >   
  26.             < include   name = "**/*.jar"   />   
  27.         </ fileset >   
  28.     </ path >   
  29.     < patternset   id = "project.junit.exclude" >   
  30.         < include   name = "**/*Test*"   />   
  31.         < exclude   name = "**/testunit/**"   />   
  32.         < exclude   name = "**/chart/**"   />   
  33.         < exclude   name = "**/workflow/**"   />   
  34.         < exclude   name = "**/TestAction*"   />   
  35.     </ patternset >   
  36.   
  37.     < target   name = "init" >   
  38.         < echo > Init Begin </ echo >   
  39.         < mkdir   dir = "${project.build.tmpdir}"   />   
  40.         < mkdir   dir = "${project.build.tmpdir.confdir}"   />   
  41.         < mkdir   dir = "${project.junit.output}"   />   
  42.         < echo > Init End </ echo >   
  43.     </ target >   
  44.     < target   name = "destroy" >   
  45.         < echo > Destroy Begin </ echo >   
  46.         < delete   dir = "${project.build.tmpdir}"   />   
  47.         < delete >   
  48.             < fileset   dir = "${project.junit.output}" >   
  49.                 < include   name = "TEST*.xml"   />   
  50.             </ fileset >   
  51.         </ delete >   
  52.         < echo > Destroy End </ echo >   
  53.     </ target >   
  54.     < target   name = "compileSRC" >   
  55.         < echo   message = "Compile SRC Begin"   />   
  56.         < javac   srcdir = "${project.basedir}/src"   destdir = "${project.build.tmpdir}" >   
  57.             < classpath   refid = "project.compile.lib"   />   
  58.         </ javac >   
  59.         < echo   message = "Compile SRC End"   />   
  60.     </ target >   
  61.     < target   name = "compileTEST" >   
  62.         < echo   message = "Compile TEST Begin"   />   
  63.         < javac   srcdir = "${project.basedir}/test"   destdir = "${project.build.tmpdir}"   encoding = "GBK" >   
  64.             < classpath   refid = "project.compile.lib"   />   
  65.             < classpath   refid = "project.compile.testlib"   />   
  66.         </ javac >   
  67.         < echo   message = "Compile TEST End"   />   
  68.     </ target >   
  69.     < target   name = "copyfile" >   
  70.         < echo   message = "BEGIN WEB-INF END"   />   
  71.         < copy   todir = "${project.build.tmpdir.confdir}" >   
  72.             < fileset   dir = "${project.webroot.confdir}" >   
  73.                 < include   name = "*.xml"   />   
  74.                 < include   name = "*.properties"   />   
  75.                 < include   name = "*.log"   />   
  76.             </ fileset >   
  77.         </ copy >   
  78.         < echo   message = "Copy WEB-INF END"   />   
  79.         < echo   message = "Copy test config file BEGIN"   />   
  80.         < copy   todir = "${project.build.tmpdir}" >   
  81.             < fileset   dir = "${project.basedir}/test" >   
  82.                 < include   name = "**/*.properties"   />   
  83.             </ fileset >   
  84.         </ copy >   
  85.         < echo   message = "Copy test config file END"   />   
  86.     </ target >   
  87.     < target   name = "testunit" >   
  88.         < echo   message = "Running TestCase Begin"   />   
  89.         < junit   printsummary = "on"   fork = "true"   showoutput = "true" >   
  90.             < classpath   refid = "project.compile.lib"   />   
  91.             < classpath   refid = "project.compile.testlib"   />   
  92.             < formatter   type = "xml"   />   
  93.             < batchtest   todir = "${project.junit.output}" >   
  94.                 < fileset   dir = "${project.build.tmpdir}" >   
  95.                     < patternset   refid = "project.junit.exclude"   />   
  96.                 </ fileset >   
  97.             </ batchtest >   
  98.         </ junit >   
  99.         < echo   message = "Running TestCase End"   />   
  100.     </ target >   
  101.     < target   name = "report"   depends = "testunit" >   
  102.         < echo   message = "Report Begin"   />   
  103.         < junitreport   todir = "${project.junit.output}" >   
  104.             < fileset   dir = "${project.junit.output}" >   
  105.                 < include   name = "TEST-*.xml"   />   
  106.             </ fileset >   
  107.             < report   todir = "${project.junit.output}"   format = "frames"   />   
  108.         </ junitreport >   
  109.         < echo   message = "Report End"   />   
  110.     </ target >   
  111.     < target   name = "openFile" >   
  112.         < taskdef   name = "browseURL"   classname = "com.hd.testunit.AntOpenCommand" >   
  113.             < classpath   path = "${classpath}"   />   
  114.             < classpath   location = "${project.build.tmpdir}"   />   
  115.         </ taskdef >   
  116.         < browseURL   fileUrl = "${project.junit.output}/index.html"   />   
  117.     </ target >   
  118.     < target   name = "compile"   depends = "compileSRC, compileTEST" >   
  119.         < echo   message = "Compile successful."   />   
  120.         < antcall   target = "copyfile"   />   
  121.     </ target >   
  122.     < target   name = "main"   depends = "init,compile,report,openFile,destroy" >   
  123.         < echo >   
  124.             date:${date}  
  125.         </ echo >   
  126.     </ target >   
  127. </ project >   
 
分享到:
评论

相关推荐

    JUnit单元测试自动构建脚本

    下面我们将详细探讨JUnit单元测试和Ant自动构建脚本的相关知识点。 首先,让我们了解一下JUnit。JUnit是一个开源的测试框架,它基于xUnit架构,提供了一套简单的API来创建和运行测试用例。开发者可以通过注解(如@...

    Java单元测试之代码覆盖率-JaCoCo

    3. **构建工具集成**:JaCoCo支持Maven、Gradle、Ant等多种构建工具,可以在构建过程中自动执行测试并生成覆盖率报告。 4. **IDE集成**:JaCoCo还可以与Eclipse、IntelliJ IDEA等IDE集成,直接在开发环境中查看覆盖...

    敏捷自动化测试-Java-黑盒单元测试

    JUnit是一个开源的Java测试框架,它简化了编写和运行单元测试的过程。此外,JUnitParams是一个扩展库,允许我们将测试数据作为参数传递给测试方法,提高了测试的可读性和可维护性。 在Java单元测试中,黑盒测试是一...

    java-jacoco-单元测试覆盖-示例项目

    2. **配置JaCoCo**:在构建脚本中配置JaCoCo插件,指定覆盖率报告的输出位置、是否生成执行数据等。 3. **编写单元测试**:使用JUnit、TestNG等测试框架编写单元测试,确保覆盖到项目的主要逻辑。 4. **运行测试并...

    自动化测试脚本

    10. **持续集成**:将自动化测试脚本与持续集成工具(如Jenkins)集成,实现自动化的构建和测试流程。 通过学习和实践这些示例,开发者可以更深入地理解和掌握Selenium的使用,提升自动化测试能力。同时,对于团队...

    java自动化测试框架

    本文将深入探讨Java自动化测试框架的核心概念、常用工具以及如何构建一个基本的自动化测试流程。 首先,我们要理解自动化测试的重要性。在软件开发中,手动测试虽然直观,但耗时且容易出错。自动化测试通过编写可...

    压力测试脚本

    2. **脚本语言**:大多数压力测试工具支持自定义脚本语言,例如JMeter使用Java语法的Groovy或BSF脚本,LoadRunner有其专有的Vuser脚本语言。开发者需要掌握这些语言来编写复杂的测试逻辑。 3. **负载模拟**:脚本...

    JAVA单元测试接口作业 (源码 + 说明文档)

    4. **构建脚本**:如Maven的pom.xml或Gradle的build.gradle,用于构建和运行测试。 5. **README**:提供关于如何运行项目的简要说明。 通过这个资源,你可以学习到: - 如何使用JUnit或其他测试框架(如TestNG)...

    java自动化测试

    Java自动化测试是软件开发过程中一个重要的环节,它利用编程语言如Java来实现测试脚本,以提高测试效率,减少人工错误,并确保软件质量。在Java自动化测试中,我们通常会用到一系列工具和技术,包括单元测试、集成...

    自动化测试用例脚本

    自动化测试是IT行业中提高效率和减少人力成本的重要手段,尤其在软件开发的测试阶段。"自动化测试用例脚本"是指编写的一...学习并掌握这些知识点,将有助于构建高效、可靠的自动化测试框架,提升软件测试的质量和效率。

    VS+Java+自动构建

    【自动构建在软件开发中的重要性】 在软件开发过程中,自动构建是一个至关重要的环节,它能够帮助团队提高效率,减少人为错误,确保...同时,通过自动构建脚本实现了SVN仓库的同步和提交通知,确保团队的高效协作。

    自动化单元测试

    测试金字塔是一种最佳实践,提倡构建一个以单元测试为基础,集成测试为辅助,端到端测试为顶层的测试结构。这样可以确保大部分测试是快速且可重复的,同时保持测试的全面性。 九、代码覆盖率工具 为了测量测试覆盖...

    java+selenium+maven+testng自动化测试框架实例(实际项目)

    **Java**: Java是一种广泛使用的面向对象的编程语言,以其跨平台的特性闻名,非常适合编写自动化测试脚本。在自动化测试中,Java提供了丰富的类库和API,可以方便地创建和执行测试用例。 **Selenium**: Selenium是...

    Java项目包 Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

    Java项目的自动化构建、打包和部署是现代开发流程中的重要环节,极大地提高了开发效率和产品质量。在本项目中,我们利用Jenkins、Maven、Gitlab和Tomcat这四个工具实现了一个完整的自动化工作流。 首先,让我们来...

    最全面的Java接口自动化测试实战.docx

    通过本篇内容,你将能够掌握一套全面的Java接口自动化测试实战策略。 首先,接口自动化测试整体认知是理解自动化测试的基础。它涉及到测试的目标、范围和价值,例如提高测试效率、降低人工错误和确保产品质量。接口...

    selenium+java+python自动化测试

    Java以其企业级应用的稳定性和广泛的库支持,常被用于构建复杂的自动化测试框架。Python则以其简洁易读的语法和丰富的第三方库,成为快速实现自动化测试脚本的首选语言。 以下是这些关键词所涵盖的知识点: 1. **...

    Ant自动化测试构建

    通过在 Ant 构建脚本中整合 JUnit,可以自动化测试过程,确保代码在构建阶段就能得到充分验证。 以下是一般的步骤: 1. **安装和配置**:首先确保已安装 Ant 和 JUnit,将 JUnit 库添加到 Ant 的 classpath 中。 2...

    Java_web项目中单元与集成测试.pdf

    2. **Ant**:Ant是一款流行的构建工具,可以用来编译Java代码和执行单元测试。 3. **StrutsTestCase**:专门用于测试基于Struts框架的Action类,简化了测试过程。 4. **EasyMock**:一个强大的Mock框架,用于模拟...

Global site tag (gtag.js) - Google Analytics