当前位置: 首页 > news >正文

mvn能只test单独一个文件吗

是的,Maven ​完全可以​ 只测试一个单独的文件(更精确地说,是一个单独的测试类)。

使用 Maven 的 surefire 插件(默认用于运行单元测试)提供的 -Dtest 参数即可实现。

具体方法如下:​

  1. 定位目标测试类:​​ 找到你想要单独运行的测试类的完整类名(包括包路径)。假设你的测试类名为 com.example.MyServiceTest

  2. 使用 -Dtest 参数:​​ 在运行 mvn test 命令时,添加 -Dtest=你的测试类名 选项。

    mvn test -Dtest=com.example.MyServiceTest
    • com.example.MyServiceTest 替换为你实际的、想要运行的测试类的全限定类名(Fully Qualified Class Name)​
    • 该类必须位于 src/test/java 目录下相应的包路径中。
    • 该类必须是一个被测试框架(如 JUnit、TestNG)识别的测试类(通常包含 @Test 注解的方法)。

关键说明和选项:​

  1. 文件名 vs 类名:​

    • 你指定的是测试类的完整类名,而不是源代码文件的物理文件名。
    • 如果你知道文件位置但不确定完整类名:
      • 文件路径是: src/test/java/com/example/MyServiceTest.java
      • 那么对应的类名就是: com.example.MyServiceTest
  2. 运行特定方法(可选):​

    • 你甚至可以在类名后面加上方法名来只运行单个测试方法:
      mvn test -Dtest=com.example.MyServiceTest#testSpecificMethod
      • testSpecificMethod 替换为实际的方法名。
  3. 使用模式匹配:​

    • -Dtest 参数支持简单的通配符 (*) 和正则表达式(需要用单引号包裹)。
    • 例子:只运行以 Test 结尾的特定包下的类:​
      mvn test -Dtest=com.example.service.*Test
    • 例子:使用正则表达式运行多个匹配的类:​
      mvn test -Dtest='.*IntegrationTest' # 运行所有以 'IntegrationTest' 结尾的类
  4. Windows 上的引号:​

    • 如果你的类名或方法名包含特殊字符(或者在使用模式匹配时),在 Windows 命令提示符下,你可能需要使用双引号-Dtest 的参数值包裹起来:
      mvn test -Dtest="com.example.MyServiceTest#testWith*InName"
    • 在 Linux/Unix/Mac 终端中,单引号通常更安全。
  5. 其他常见相关参数:​

    • -DfailIfNoTests=false: 如果没有找到匹配的测试类,默认会导致构建失败。添加这个参数可以避免失败。
    • -Dmaven.test.skip=true-DskipTests: ​跳过整个测试阶段。如果你只想运行编译等但不运行任何测试(包括你指定的那个),可以用这个。​注意区分 -Dtest-DskipTests!​

总结:​

使用命令 mvn test -Dtest=<Full.ClassName.Of.YourTest> 就是运行单个测试类的最简单、最标准的方法。你还可以在该类名后添加 # 和方法名来执行单个测试方法。-Dtest 参数的灵活性为运行特定的测试子集提供了强大的支持。

http://www.lryc.cn/news/583896.html

相关文章:

  • Unity插件——ABC详解
  • pyqt-3(QSS、读取带qrc的ui、信号与槽函数)
  • 从面向对象编程语言PHP转到Go时的一些疑惑?
  • 文心一言4.5开源部署指南及文学领域测评
  • Go语言教程-变量、常量、命名规则
  • GO启动一个视频下载接口 前端可以边下边放
  • Django中序列化与反序列化
  • 实现源图像到目标图像的转换(提示:RGB值互换,新R=旧G,新G=旧B,新B=旧R)
  • Redis数据库基础
  • JSZip 使用详解
  • vue3 td 标签优化时间显示
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleVerticalSlider(双垂直滑块)
  • JavaScript 树形菜单总结
  • SoC程序如何使用单例模式运行
  • vue3 el-table 列汉字 排序时排除 null 或空字符串的值
  • 第二章-AIGC入门-AI视频生成:几款实用AI视频生成工具全解析(7/36)
  • 2025年软件测试面试题,精选33道,附答案
  • 数据结构笔记10:排序算法
  • 【办公类-107-01】20250710视频慢速与视频截图
  • 用OpenCV标定相机内参应用示例(C++和Python)
  • window显示驱动开发—XR_BIAS 和 PresentDXGI
  • 图像亮度调整的简单实现
  • 0基础学Python系列【31】 详细讲解Python中SQLAlchemy包的用法:从入门到精通
  • k8s:安装 Helm 私有仓库ChartMuseum、helm-push插件并上传、安装Zookeeper
  • zookeeper etcd区别
  • 在 Mac 上安装 Java 和 IntelliJ IDEA(完整笔记)
  • macOS 上安装 Miniconda + Conda-Forge
  • 算法练习5-原地移除数组中所有的元素
  • 龙迅#LT8619B适用于HDMI转LVDS/RGB,芯片支持视频图像处理,OSD功能.
  • MacOS 终端(Terminal)配置显示日期时间