`

maven3实战之maven使用入门(编写测试代码)

阅读更多

maven3实战之maven使用入门(编写测试代码)

----------

 

为了使项目结构保持清晰,主代码与测试代码应该分别位于独立的目录中,maven项目中默认的主代码目录是:src/main/java,对应地,maven项目中默认的测试代码目录是:src/test/java。因此,在编写测试用例之前,应当先创建该目录。

在java世界中,由kent beck和erich gamma建立的Junit是事实上的单元测试标准。要使用JUnit,首先需要为项目添加一个JUnit依赖。如例:

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.juvenxu.mvnbook</groupId>
    <artifactId>hello-world</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>Maven hello world Project</name>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
</project>

 

代码中添加了dependencies元素,该元素下可以包含多个dependency元素以声明项目的依赖。这里添加了一个依赖---groupId是junit,artifactId是junit,version是4.7。前面提到groupId,artifactId和version是任何一个Maven项目最基本的坐标,JUnit也不例外,有了这段声明,maven就能够自动下载junit-4.7.jar。也许你会问,maven从哪里下载这个jar呢?在maven之前,可以去JUnit的官方网站下载分发包,有了maven,它会自动访问中央仓库(http://repo1.maven.org/maven2/),下载需要的文件。

上述POM代码中还有一个值为test的元素scope,scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效。换句话说,测试代码中的import JUnit代码是没有问题的,但是如果在主代码中用import JUnit代码,就会造成编译错误。如果不声明依赖范围,那么默认值就是compile,表示该依赖对主代码和测试代码都有效。

 

配置了测试依赖,接着就可以编写测试类。测试用例编写完毕之后就可以调用maven执行测试。运行:mvn clean test

 

注意:

由于历史原因,maven的核心插件之一---compile插件默认只支持编译java1.3,如果我们在主代码或测试代码中使用了java5或java6的语法,程序就会编译出错,这个时候我们应该显示地声明插件并注明使用java的版本,如: 

 

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
 

 

分享到:
评论

相关推荐

    Maven实战- 入门

    第 3 章 Maven 使用入门 16. 3.1 编写 POM 17. 3.2 编写主代码 18. 3.3 编写测试代码 19. 3.4 打包和运行 20. 3.5 使用 Archetype 生成项目骨架 21. 3.6 m2eclipse 简单使用 22. 3.7 NetBeans Maven 插件简单使用 ...

    Maven实战 安装配置

    第3章 Maven使用入门16.3.1 编写POM17.3.2 编写主代码18.3.3 编写测试代码19.3.4 打包和运行20.3.5 使用Archetype生成项目骨架21.3.6 m2eclipse简单使用22.3.7 NetBeans Maven插件简单使用23.3.8 小结

    Maven实战(高清版)

    xml2.7.3 不要使用ide内嵌的maven2.8 小结第3章 maven使用入门3.1 编写pom3.2 编写主代码3.3 编写测试代码3.4 打包和运行3.5 使用archetype生成项目骨架3.6 m2eclipse简单使用3.6.1 导入maven项目3.6.2 ...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    亮点一、Structs2.x+Spring3.x+Hibernate4.x+ JEasyui1.3.4+Maven3 各框架jar包等采用的均是目前为止最新的版本,讲解时使用的这些jar及框架的最新技术,如此组合在国内尚属首部、技术的前沿性可以保证让您的技术在...

    maven使用笔记

    个人编写的最简洁、最通俗易懂、最具操作性的maven使用文档。适合maven入门以及实战。

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip 章节笔记 第1章-课程介绍及项目框架搭建 知识点 使用spring boot 搭建项目基础框架 使用Thymeleaf做页面展示,封装Result统一结果 集成 mybatis + ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    Gradle实战入门教程-整合版

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来...6. 基于groovy脚本构建,其build脚本使用groovy语言编写 7. 具有广泛的领域模型支持你的构建

    HadoopLearning:完整的大数据基础学习教程,包含最基础的centos,maven。大数据主要包含hdfs,mr,yarn,hbase,kafka,scala,sparkcore,sparkstreaming,sparksql。

    1,基础教程1.1,centos相关1.2,maven相关2,大数据教程2.1,hdfs教程2.1,mapreduce教程3,剩余编写HDFS入门,深入,Shell访问,Java API操作MapReduce入门,深入,编程基础,编程进阶,实战分析和训练Yarn入门,...

    HadoopLearning:大数据学习教程

    3、剩余编写 HDFS入门、深入、Shell访问、Java API操作 MapReduce入门、深入、编程基础、编程进阶、实战分析和训练 Yarn入门、原理剖解和应用场景 Hbase存储原理、RowKey设计、协处理、Shell访问、Java API访问和...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 淘淘商城源代码.zip │ ├─01.第一天 │ 01.课程计划.avi │ 02.淘淘商城介绍.avi │ 03.创建后台工程-taotao-parent.avi │ 04.创建taotao-manager.avi │ 05.svn的使用.avi │ 06.ssm框架整合思路.avi │ 07....

Global site tag (gtag.js) - Google Analytics