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>
 

 

你可能感兴趣的:(apache,maven,xml,JUnit,单元测试)