首页 > 其他分享 >pom文件分析+单元测试+命令讲解

pom文件分析+单元测试+命令讲解

时间:2023-05-25 12:38:02浏览次数:28  
标签:Maven 项目 单元测试 maven pom 测试 讲解 mvn

1. pom文件  12

即 Project Object Model 项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在 xml 文件中进行声明,以方便进行构建和描述,pom.xml 是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和操作都是关于 pom.xml 的。

1.1 pom.xml 初识:  12

pom文件分析+单元测试+命令讲解_maven

pom文件分析+单元测试+命令讲解_pom文件_02

1.2 pom:项目对象模型,是一个pom.xml文件    12-13

1)坐标:唯一值, 在互联网中唯一标识一个项目的

公司域名的倒写

自定义项目名称

自定版本号

https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件

2) packaging: 打包后压缩文件的扩展名,默认是jar ,web应用是war

packaging 可以不写, 默认是jar

3) 依赖

dependencies 和dependency ,相当于是 java代码中import


你的项目中要使用的各种资源说明, 比我的项目要使用mysql驱动

<dependencies>

<!--依赖  java代码中 import -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.9</version>

</dependency>

</dependencies>


4)properties:设置属性

5)build : maven在进行项目的构建时, 配置信息,例如指定编译java代码使用的jdk的版本等

2. 坐标(gav)  14

Maven把任何一个插件都作为仓库中的一个项目进行管理,用一组(三个)向量组成的坐标来表示。坐标在仓库

中可以唯一定位一个Maven项目。

groupId:组织名,通常是公司或组织域名倒序+项目名

artifactId:模块名,通常是工程名

version:版本号

需要特别指出的是,项目在仓库中的位置是由坐标来决定的:groupId、artifactId和version决定项目在仓库中

的路径,artifactId和version决定jar包的名称。

3. 依赖(dependency)  13-14

一个 Maven 项目正常运行需要其它项目的支持,Maven 会根据坐标自动到本地仓库中进行查找。

对于程序员自己的 Maven 项目需要进行安装,才能保存到仓库中。

不用 maven 的时候所有的 jar 都不是你的,需要去各个地方下载拷贝,用了 maven 所有的 jar 包都是你的,想

要谁,叫谁的名字就行。maven 帮你下载。

pom.xml 加入依赖的方式:

log4j 日志依赖

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

junit 单元测试依赖

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

4. maven的声明周期   14

对项目的构建是建立在生命周期模型上的,它明确定义项目生命周期各个阶段,并且对于每一个阶段提供相对应的命令,对开发者而言仅仅需要掌握一小堆的命令就可以完成项目各个阶段的构建工作。构建项目时按照生命周期顺序构建,每一个阶段都有特定的插件来完成。不论现在要执行生命周期中的哪个阶段,都是从这个生命周期的最初阶段开始的。对于我们程序员而言,无论我们要进行哪个阶段的构建,直接执行相应的命令即可,无需担心它前边阶段是否构建,Maven 都会自动构建。这也就是 Maven 这种自动化构建工具给我们带来的好处。

4.1  Maven 的常用命令   14

4.1.1 maven生命周期, maven的命令,maven的插件  14、17

maven的生命周期:就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署

maven的命令:maven独立使用,通过命令,完成maven的生命周期的执行。

maven可以使用命令,完成项目的清理,编译,测试等等

maven的插件: maven命令执行时,真正完成功能的是插件,插件就是一些jar文件, 一些类。

Maven 对所有的功能都提供相对应的命令,要想知道 maven 都有哪些命令,那要看 maven 有哪些功能。一开始就跟大家说了,maven 三大功能:管理依赖、构建项目、管理项目信息。管理依赖,只需要声明就可以自动到仓库下载;管理项目信息其实就是生成一个站点文档,一个命令就可以解决,最后再说;那 maven 功能的主体其实就是项目构建。

Maven 提供一个项目构建的模型,把编译、测试、打包、部署等都对应成一个个的生命周期阶段,并对

每一个阶段提供相应的命令,程序员只需要掌握一小堆命令,就可以完成项目的构建过程。

mvn clean 清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)

mvn compile 编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件,编译main/java/目录下的java 为class文件, 同时把class拷贝到 target/classes目录下面

把main/resources目录下的所有文件 都拷贝到target/classes目录下)

mvn test-compile编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)

mvn test 测试(会生成一个目录surefire-reports,保存测试结果)

mvn package打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)

mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)

mvn deploy 部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。

还会自动把项目部署到 web 容器中)。

注意:执行以上命令必须在命令行进入 pom.xml 所在目录

5. 单元测试(测试方法):  15

用的是junit, junit是一个专门测试的框架(工具)。

junit测试的内容: 测试的是类中的方法, 每一个方法都是独立测试的。方法是测试的基本单位(单元)。

maven借助单元测试,批量的测试你类中的大量方法是否符合预期的。

5.1 使用步骤   15

1.加入依赖,在pom.xml加入单元测试依赖

<!-- 单元测试 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

<scope>test</scope>

</dependency>


5.2 测试   15-17

在maven项目中的src/test/java目录下,创建测试程序。

推荐的创建类和方法的提示:

1.测试类的名称 是Test + 你要测试的类名

2.测试的方法名称 是:Test + 方法名称

例如你要测试HelloMaven ,

创建测试类 TestHelloMaven

@Test

public void testAdd(){

测试HelloMaven的add方法是否正确

}

其中testAdd叫做测试方法,它的定义规则

1.方法是public的,必须的

2.方法没有返回值, 必须的

3.方法名称是自定义的,推荐是Test + 方法名称

4.在方法的上面加入 @Test

代码在E:\java学习    \Maven\course\course1\Hello\src\test\java\com\bjpowernode

TestHelloMaven.java       17

先使用mvn clean清理

在使用mvn compile 编译主程序

然后使用mvn test-compile编译测试程序

最后使用mvn test测试成功与否

package com.bjpowernode;
import org.junit.Assert;
import org.junit.Test;

public class TestHelloMaven{
@Test
public void testAdd(){
System.out.println("===maven juint testAdd()===");
HelloMaven hello = new HelloMaven();
int res = hello.add(10,20);
//验证10+20是不是30,junit提供的方法对比结果
//assertEquals(期望值,实际值),两个值相等就是正确的,不等就抛出异常
Assert.assertEquals(30,res);
}

@Test
public void testAdd2(){
System.out.println("###maven juint testAdd()###");
HelloMaven hello = new HelloMaven();
int res = hello.add(30,20);
//验证10+20是不是30,junit提供的方法对比结果
//assertEquals(期望值,实际值),两个值相等就是正确的,不等就抛出异常
Assert.assertEquals(50,res);
}
}

标签:Maven,项目,单元测试,maven,pom,测试,讲解,mvn
From: https://blog.51cto.com/u_15784725/6346440

相关文章

  • maven命令,跳过单元测试-maven.test.skip和skipTests的区别
    maven命令,跳过单元测试-maven.test.skip和skipTests的区别-DskipTests,不执行测试用例,但是会编译测试用例类,并且会生成相应的class文件,而且此文件放置在target/test-classes下。-Dmaven.test.skip=true,不执行测试用例,也不会编译测试用例类。一、使用maven.test.skip,不但跳过单元......
  • Docker核心讲解(包括实战内容)
    Docker镜像讲解镜像是什么镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件。所有的应用,直接打包docker镜像,就可以直接跑起来如何得到镜像:(1)从远程仓库下载(2)朋友拷贝给......
  • flask框架使用unittest单元测试
    user_labels_api.py1#-*-coding:utf-8-*-2#Author:Ethan3#Time:2023/5/1612:504fromflaskimportFlask,jsonify,render_template,request,json5importrequests6#fromflask_sqlalchemyimportSQLAlchemy7app=Flask(__name__)8#bd......
  • 尝试讲解一下数字电路和模拟电路的状态方程
        状态方程,也称为状态转移方程。在数字电路的时序逻辑分析和设计中,会用到状态方程。而实际模拟电路中几乎不用,用到的是“电路分析”部分。但是自动控制原理,通常是通过模拟电路实现的,而使用状态方程的方法,通常被称为现代控制理论。这里不研究那么高深的自动控制理论,仅仅......
  • 第二十二篇——「硬核讲解」通达信如何跨周期引用均线?(从零起步编写通达信指标公式系列
    内容提要:本文主要介绍了编写通达信跨周期引用均线指标公式需要用到的方法,以及在固定位置写文字、数字需要使用的函数,并进行综合运用编写指标公式。 这几天有人问能否实现主图标记不同周期均线价格并按大小实时排序,比如显示60分钟,120分钟,日线,周线,5/10/20/30/60周期均线价格并......
  • Pytest单元测试报告用例标题中文名称怎么显示(转载)
    背景基础不牢,地动山摇。在开发编程一途,尤为重要。有python同学喜欢使用pytest框架实现接口自动化测试方案,在使用参数化过程中,无论是控制台还是测试报告中都没有展示用例名称(中文),而是参数化过程的参数顺序,如下图所示:从报告效果上看,存在不知道fail的用例是哪......
  • 肖sir____面试课程linux_讲解
    linux命令一、linux命令熟悉吗?熟悉二、你用linux命令来操作什么?部署环境、查看日志、编辑配置文件、查看服务进程的进程、查看ip地址、查看端口、查看网络状态、杀进程、修改权限等三、你讲下liunx中常用的命令有哪些?(1)按常用的命令讲解(随意讲)比如:tail-f查看日志、kill-9......
  • Q&A:IDEA环境下pom文件依赖引入成功,但提示版本号不存在
    Question: IDEA环境下pom文件依赖引入成功,但提示版本号不存在。Answer: 网络资料显示问题原因:可能是项目依赖中有些jar没有下载完整IDEA2020版本在maven构建时存在的BUG方案一: 在当前项目命令行mvnidea:idea,检查未下载完的jar并下载; 菜单选择【file】->【inva......
  • SpringBoot单元测试只${spring.profiles.active}异常
    在使用SpringBoot进行单元测试时,如果遇到「couldnotresolveplaceholder'spring.profiles.active'」的错误提示,通常是因为你在测试用例中使用了@ActiveProfiles注解来激活某些特定的配置文件,但是你的项目中并没有这些指定的配置文件。为了解决这个问题,你需要检查你的测试......
  • flink CEP 讲解 和实例
     1,Flink介绍  Flink是一个分布式的基于状态计算的流处理计算引擎,或者说框架,可以处理有边界流数据和无边界流数据,在内存中执行计算,而且具有任意扩展计算能力。最初由柏林工业大学的xxx小组研发,后被阿里巴巴收购。初略看起来,和spark功能类似,但是某些特征优于spark。 Flin......