前言
在之前的文章中,我们已经实现了查看覆盖率的方式,但 maven 默认的文件夹结构和课程组的要求不一致,而文件夹结构不一致会导致提交的的代码无法编译成功,因此我们不得在两个文件夹里进行开发和覆盖率测试的工作,这极大地降低了我们的效率。而在这篇文章中,我们将解决这个问题。
如果读者有任何疑问,欢迎联系 admin@aostl.ink 。
准备工作
注:第二个插件可以直接显示“行覆盖率/分支覆盖率”。
配置环境
把下载好的 apache-maven-3.9.4-bin.zip 解压得到 apache-maven-3.9.4/,并在系统的环境变量中添加 <path>/apache-maven-3.9.4
,变量名 MAVEN_HOME
。 在系统环境变量的 Path
变量中添加 %MAVEN_HOME\bin
。 保存后在控制台输入 mvn -version
得到一大串输出说明配置成功。
你的文件夹路径应该如下图所示
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ─<FolderName> ├─.vscode │ └─... ├─main │ ├─src │ │ ├─Main.java │ │ └─... │ ├─test │ │ ├─MainTest.java │ │ └─... │ ├─.git │ └─.gitignore ├─pom.xml └─...
|
其中 <FolderName>
是你的项目文件夹(也是 VSCode 的工作目录), pom.xml
是该文件夹(项目)的 Maven 环境配置文件。
pom.xml
配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <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>oopre</groupId> <artifactId>oopre</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>oopre</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>20</maven.compiler.source> <maven.compiler.target>20</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> </dependencies> <build> <sourceDirectory>main/src</sourceDirectory> <testSourceDirectory>main/test</testSourceDirectory> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.10</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <excludes> <exclude>**/test/</exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
|
使用
VSCode 以 <FolderName>
作为工作区,git 以 main
文件夹作为工作区,这样在提交到仓库的时候就可以保证文件夹符合课程组的要求了。 在 VSCode 内(或 <FolderName>
文件夹下)使用 mvn install
初始化 Maven 环境,使用 mvn test & mvn jacoco:report
得到测试覆盖率并生成报告。 在 VSCode 内的源代码管理选项(或 main
文件夹下使用 git
命令)进行仓库的管理,尤其注意不要把仓库建在 <FolderName>
下。