我们可以在 maven-surefire-plugin 之前执行 exec-maven-plugin 吗?

kal*_*ali 1 maven exec-maven-plugin maven-surefire-plugin

是否可以在 maven-surefire-plugin 之前运行 exec-maven-plugin,我在运行过程中观察到 maven-surefire-plugin 首先执行,即使标记中的序列是第二个。我的场景是执行 JAVA CLASS (使用 exec-maven-plugin ),它生成我的 testng.xml 并可以使用(maven-surefire-plugin)运行它。

Tun*_*aki 5

首先,如果您有一个exec-maven-plugin绑定到该test阶段的执行,那么该执行在 之一之后执行是正常的maven-surefire-plugin。原因是您可能正在处理打包项目jar,该项目具有 Surefire 插件到阶段的默认绑定test。无论插件在 POM 中的何处声明,此默认执行始终是第一个调用的执行。在日志中,您将发现此执行的 id 为default-test

有一种方法可以通过利用在阶段之前调用的阶段,test在测试运行之前执行操作。在您的情况下,您的目标是生成测试资源 ,testng.xml因此使用该阶段是合适的generate-test-resources,其目的是创建测试所需的资源。因此,您只需指定

<phase>generate-test-resources</phase>
Run Code Online (Sandbox Code Playgroud)

exec-maven-plugin到生成的执行testng.xml

然后,您可以使用生成的testng.xml元素suiteXmlFiles,请参阅使用 Suite XML 文件