1. 问题展示(困扰了好多天,吐了)
- 只执行一次 run test,但是会执行两次 findAllAreaTest 方法。
- 通过 debug 在mapper.findxxx 打断点,发现未进入断点就已经执行了一次该方法(info.log中看到日志了)
- 最终定位到问题:可能是会执行 maven 的 test ,然后在执行一次进入断点?(只是猜测)
2. 解决方案
- 在这里跳过测试,效果如下
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building o2o Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ o2o ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 9 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ o2o ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 28 source files to G:\javaInterviewProject\o2o\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ o2o ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ o2o ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to G:\javaInterviewProject\o2o\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ o2o ---
[INFO] Tests are skipped.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.957 s
[INFO] Finished at: 2020-06-30T20:10:14+08:00
[INFO] Final Memory: 19M/212M
[INFO] ------------------------------------------------------------------------
3. 参考文献
-
maven测试为 default 生命周期中的test阶段。
test阶段与 maven-surefire-plugin 的test目标相绑定了, 这是一个内置的绑定。
Maven通过插件来执行 JUnit 和 TestNG 的测试用例。
maven-surefire-plugin 的test目标会自动执行测试源码路径下符合命名模式的测试类。
默认测试源代码路径: src/test/java/