Maven测试

maven测试为 default 生命周期中的test阶段。
test阶段与 maven-surefire-plugin 的test目标相绑定了, 这是一个内置的绑定。
Maven通过插件来执行 JUnit 和 TestNG 的测试用例。

maven-surefire-plugin 的test目标会自动执行测试源码路径下符合命名模式的测试类。
默认测试源代码路径: src/test/java/
测试类命名模式:
**/Test*.java
**/*Test.java
**/*TestCase.java
按上述模式命名的类, 使用 mvn test 命令就能自动运行他们。

跳过测试

下面命名跳过测试:
mvn install -DskipTests
也可以在POM文件中配置 maven-surefire-plugin

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version><configuration><skipTests>true</skipTests><!-- skip 对应命令行参数为 maven.test.skip  --><skip>false</skip></configuration></plugin>

不推荐这种做法,会让项目长期跳过测试。

如果想不仅跳过测试运行,还跳过测试代码的编译,使用下面命令:
mvn package -Dmaven.test.skip=true
maven.test.skip 控制了 maven-compiler-plugin 和 maven-surefire-plugin 两个插件的行为。

Maven动态指定测试用例

maven-surefire-plugin 使用 test 参数指定测试用例, 为测试用例的类名
mvn test -Dtest=RandomTest
只执行 RandomTest 这个测试类.
mvn test -Dtest=RandomTest#myTest
上面命令,只运行 RandomTest 类的 myTest 方法

可以指定多个类,逗号分隔
mvn test -Dtest=RandomTest,Random2Test
也可以用 * 匹配多个
mvn test -Dtest=Random*Test
*和 逗号可以结合使用。

如果不指定或者找不到测试类则构建失败
mvn test -Dtest
failIfNoTests 参数控制没有测试用例不报错
mvn test -Dtest -DfailIfNoTests=false

包含测试用例

将不符合命名模式测试类自动运行测试。
修改POM文件

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version><configuration><includes><include>**/*Tests.java</include></includes></configuration></plugin>

两个星号 ** 表示匹配任意路径。
上面表示匹配已 Tests.java 结尾的Java类。

排除测试用例

排除测试用例不实用test自动运行
使用 excludes 节点

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.19.1</version><configuration><excludes><exclude>**/*ServiceTest.java</exclude></excludes></configuration></plugin>

生成测试报告

测试报告默认生成 target/surefire-reports 目录下,生成 txt, 和 xml 格式的。

测试代码重用

mvn package 会打包项目主代码和资源文件代码,没有包含测试代码。
如果想一起打包测试用例,供依赖方使用, 使用 maven-jar-plugin 插件

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><executions><execution><goals><goal>test-jar</goal></goals></execution></executions></plugin>

maven-jar-plugin 有两个目标 jar ,test-jar,
jar 内置绑定在 default 生命周期的 package 阶段。
test-jar没有内置绑定。

依赖方引入时 dependency

        <dependency><groupId>org.A</groupId><artifactId>A</artifactId><version>5.0.0</version><type>test-jar</type><scope>test</scope></dependency>

需要设置 type 和 scope。

地址:https://blog.csdn.net/yonggang7/article/details/79780487

Maven进行测试Test相关推荐

  1. maven junit测试_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开

    maven junit测试 为什么单元测试应与集成测试分开运行 单元测试级别的TDD相当简单,因为单元测试中的类要么没有复杂的依赖关系,要么使用模拟框架(例如Mockito)来模拟依赖关系. 但是,当 ...

  2. Maven硒测试自动化教程

    在进行测试自动化项目时,您需要与之关联的所有Selenium依赖项. 通常,这些依赖项是在项目生命周期中手动下载和升级的,但是随着项目规模的扩大,管理依赖项可能会非常困难. 这就是为什么需要构建自动化 ...

  3. maven TestNg 测试框架 not found

    在用TestNG测试框架进行单元测试时,在我的pom.xml中写的依赖: <dependency><groupId>org.testng</groupId>< ...

  4. maven安装测试报JAVA_HOME路径安装错误

    1.安装maven前请先安装jdk,报jdk相关的问题,可能是你的jdk安装目录有问题,路径中需包含java文件夹,尝试将jdk安装在名称为java的文件夹下,正确路径中应包含java如:D:\pro ...

  5. Maven找不到要运行的JUnit测试

    我有一个Maven程序,它可以正常编译. 当我运行mvn test它不会运行任何测试(在TESTs标头下显示There are no tests to run. ). 我已经用一个非常简单的设置重新创 ...

  6. 使用Maven进行硒测试自动化

    今天,我想帮助您更好地管理自动GUI测试(Selenium). 在过去,我已经看到人们处理此问题的许多不同方式. 有些人只是使用Selenium-IDE编写这些普通HTML TestCases,将其存 ...

  7. maven test的覆盖率测试

     对junit单元测试的报告:类似这样的结果 -------------------------------------------------------T E S T S ------------ ...

  8. maven编译时出现读取XXX时出错invalid LOC header (bad signature)

    一.发现问题 右击pom.xml,run as -> maven install,会看到console中有时报mavenRepository\repos\org\mortbay\jetty\se ...

  9. Self20171218_TestNG+Maven+IDEA环境搭建

    前言: 主要进行TestNG测试环境的搭建  所需环境:  1.IDEA UItimate  2.JDK  3.Maven 一.创建工程  File –>new –>Project–> ...

最新文章

  1. CIR:2020年全球数据中心应用AOC市场达$42亿
  2. 正则仅输入文字字母空格,但必须含有字母
  3. 拿专属内推码!一汽-大众专场直播招聘来了
  4. “3D几何与视觉技术”全球在线研讨会第六期第七期
  5. 投影html连接电脑,电脑怎么连接投影仪?投影仪的详细安装使用教程
  6. #CSP 201403-1 相反数(100分)
  7. 用python建立socket,用python建立socket服务器
  8. C#unix时间戳转换
  9. 【PTA】 统计素数并求和
  10. Error: label vector and instance matrix must be double的解决方法
  11. [BZOJ2144]跳跳棋
  12. 在Windows 7 Media Center中创建幻灯片放映
  13. 开学季·DGUT立Flag =W=
  14. 如何把Kotlin代码转成Java代码、把Java代码转成Kotlin代码
  15. RK3288 编译不过遇到的问题
  16. 随想,产品思维和开发思维
  17. Qt修改exe文件图标
  18. 导出账号格式不对_朋友圈导出的架构变迁
  19. 用matlab绘制克莱因瓶,完美!年前学会SketchUp建模克莱因瓶
  20. 智能驾驶技术—10万张监控场景车辆数据集

热门文章

  1. 备案查询API接口源码
  2. 编码学习笔记,变量,类的命名规则
  3. Python练习题目
  4. 汉字-字母-字节-位之间的转换
  5. 管理经济学之颗粒归仓(一)
  6. java 线程栈 公享变量_Java线程:线程栈模型与线程的变量
  7. 前端微信公众号开发总结(准备篇)
  8. 影视剪辑怎么学?磨金石教育正规吗?在这里学习怎么样?
  9. 计算机专业大二找不到方向,如何学好日语?计算机系大二学生,学校没有这门选修课。 自学找不到...
  10. meminfo 解释