Maven学习笔记五:Maven使用入门(编写测试代码)解析

java哥 阅读:229 2021-03-31 23:10:56 评论:0


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>


声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们