默认情况下,maven surefile插件在隔离(分叉)环境中运行测试。您可以使用以下配置覆盖此行为:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>
</plugins>
</build>
如果您需要调试测试,则应使用此配置代码段。或者您可以通过以下方式简单地运行maven:
$ mvn -Dmaven.surefire.debug tests
这将在端口5005上启动调试器。
我的问题是:分支策略有哪些好处?为什么选择maven构建的默认策略?非福祉策略是不是更直接,因此应该用作默认值(maven是约定优于配置工具,对吧)?
答案 0 :(得分:16)
我的问题是:分支策略有哪些好处?为什么选择maven构建的默认策略?
默认情况下,Surefire使用仅清单JAR来分析您的测试。 IMO的主要优点是:
非福祉策略是不是更直接,因此应该用作默认值?
直截了当?在IDE内轻松调试?我认为这不是最初的意图(如果需要,我更喜欢连接远程调试器并保持主Maven进程的安全。)
答案 1 :(得分:1)
分叉模式有助于加载系统类路径,如果它设置为“true”或“once”。 但是,如果使用maven-surefire 2.5插件,有时设置fork mode = true会出现错误,如“命令行太长”或“有测试失败”。为了避免这个错误,建议使用suferire插件2.5
来设置