java - 如何使用 Maven 运行特定包中的所有测试?

标签 java maven junit

我可以在 Maven docs 中找到它显示了如何运行:

  1. 一次测试
  2. 一个测试类中的所有测试
  3. 匹配特定模式的类中的所有测试

但是如何在一个包中运行所有的测试呢?这可能吗?

我更喜欢不需要修改 pom.xml 或代码的解决方案。

最佳答案

你也可以使用模式,例如

 mvn '-Dtest=de.mypackage.*Test' test

de.mypackage 包中以 *Test 结尾的类中运行所有测试。

[2017/12/18更新]:
由于这已成为公认的答案,因此这里有一些进一步的信息:

  • Maven 使用 Maven Surefire plugin执行测试。
  • 上面使用的语法(限定包名)需要 Surefire 版本 2.19.1 或更高版本!早期版本需要使用路径表达式,例如

    mvn -Dtest="de/mypackage/*Test" test
    
  • 我使用引号(` 或 ")来防止 shell 执行路径名扩展,Maven 不需要任何引号。

  • 可以使用以下语法来执行单个测试方法

    mvn -Dtest=MyUnitTest#testMethod test
    
  • 子包中的所有测试也可以包含在内,以便执行包中或包下的所有测试 de.mypackage.sub 执行:

    mvn -Dtest="de/mypackage/sub/**" test
    

    或使用 Surefire 2.19.1 或更高版本

    mvn -Dtest="de.mypackage.sub.**" test
    

还有更多的可能性,比如使用正则表达式,参见 official documentation of running a single test .

关于java - 如何使用 Maven 运行特定包中的所有测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819888/

相关文章:

java - 在 Eclipse (Maven) 和 Android Studio (Gradle) 之间共享 Java 模型类

java - DLTK TCL 项目导入问题

java - 与两个 wifip2p 设备建立套接字连接

java - 未找到 H2 数据库的 hibernate 表

java - Ant junit批量测试

java - 为什么我在这里收到 InvalidUseOfMatchersException?

java - 如何对无效且不带任何参数的方法进行单元测试?

java - 创建动态 POJO 并为其设置值

java - hibernate + Spring + Tomcat

maven - Jenkins 管道 - 使用执行 Maven 发布按钮