【问题标题】:mvn test vs mvn surefire:testmvn test vs mvn surefire:test
【发布时间】:2018-09-26 00:01:23
【问题描述】:

我正在使用 Maven 运行单个测试。

这两种方式运行有什么区别:

mvn -Dtest=DatabaseTest test

mvn -Dtest=DatabaseTest surefire:test

我可以看到 test 显示:

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rac.mybatis ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ rac.mybatis ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ rac.mybatis ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/etomort/smip/oracle-rac/mybatis-rac/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ rac.mybatis ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ rac.mybatis ---
[INFO] Surefire report directory: /home/etomort/smip/oracle-rac/mybatis-rac/target/surefire-reports

虽然 surefire:test 显示:

[INFO] --- maven-surefire-plugin:2.12.4:test (default-cli) @ rac.mybatis ---
[INFO] Surefire report directory: /home/etomort/smip/oracle-rac/mybatis-rac/target/surefire-reports

This question 有非常有价值的解释,尽管目前有人指出了一个可以面对的典型疑问,并且它是一个非常具体的用例。 @Shadow 提供的答案澄清了这一点。可以参考 maven-lifecycle-vs-phase-vs-plugin-vs-goal 问题来拓宽和更深入地了解 Maven 的工作方式。

【问题讨论】:

标签: maven unit-testing


【解决方案1】:

不同之处在于test 运行完整的构建直到执行测试的点,而surefire:test 仅执行测试,重复使用先前构建的中间结果。

所以如果你例如编辑一个测试并只运行surefire:test,新版本的测试将不会被编译,因此Maven将执行一些旧版本的测试。一般来说,很难说会以这种方式执行哪个版本的测试,所以这就是为什么人们一般使用mvn clean test而不是mvn surefire:test

【讨论】:

    【解决方案2】:

    test 是一个生命周期阶段,由于 Maven 是基于约定的, 这意味着默认情况下每个阶段都有某些插件already bound

    您也可以将自己的添加到阶段 但您也可以手动调用插件的目标 mvn plugin:goal.

    Surefire 是官方测试插件,绑定到测试阶段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 2018-07-16
      • 1970-01-01
      • 2011-07-02
      • 2011-04-09
      • 1970-01-01
      • 2021-09-08
      相关资源
      最近更新 更多