Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以在maven surefire插件之前执行exec maven插件吗?_Maven_Maven Surefire Plugin_Exec Maven Plugin - Fatal编程技术网

我们可以在maven surefire插件之前执行exec maven插件吗?

我们可以在maven surefire插件之前执行exec maven插件吗?,maven,maven-surefire-plugin,exec-maven-plugin,Maven,Maven Surefire Plugin,Exec Maven Plugin,是否可以在maven surefire插件之前运行exec maven插件,我在运行过程中观察到maven surefire插件首先执行,即使标记中的顺序是第二个。我的场景是执行JAVA类(使用exec maven插件),该类生成testng.xml,并可以使用(maven surefire插件)运行该类 首先,如果将执行exec maven plugin绑定到test阶段,则此执行通常在执行maven surefire plugin之后执行。原因是您可能正在处理一个将jar打包到test阶段的

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

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

有一种方法可以在运行测试之前通过利用执行操作。在您的例子中,您的目标是生成一个测试资源,
testng.xml
,因此使用
生成测试资源
阶段是合适的,其目的是创建测试所需的资源。因此,您只需要指定

<phase>generate-test-resources</phase>
生成测试资源
执行
execmaven插件
生成
testng.xml


然后,您可以将生成的
testng.xml
与元素一起使用,请参见首先,如果执行绑定到
test
阶段的
exec maven plugin
,则此执行通常在
maven surefire plugin
之后执行。原因是您可能正在处理一个将
jar
打包到
test
阶段的项目。无论插件在POM中声明在何处,此默认执行始终是第一个被调用的执行。在日志中,您将发现此执行的id为
defaulttest

有一种方法可以在运行测试之前通过利用执行操作。在您的例子中,您的目标是生成一个测试资源,
testng.xml
,因此使用
生成测试资源
阶段是合适的,其目的是创建测试所需的资源。因此,您只需要指定

<phase>generate-test-resources</phase>
生成测试资源
执行
execmaven插件
生成
testng.xml


然后,您可以将生成的
testng.xml
与元素一起使用,请参见这是我如何实现的:

  • 我已经在下面的文件夹中添加了测试脚本/java主类,我想在Cucumber测试套件之前执行:

  • 在中的POM.xml中添加了以下内容

  • 
    org.codehaus.mojo
    构建助手maven插件
    过程资源
    添加源
    src/test/java/BeforeSuite
    org.codehaus.mojo
    execmaven插件
    测试套件脚本之前
    生成测试资源
    JAVA
    BeforeSuite.HelloBeforeSuiteScript
    
    我就是这样实现的:

  • 我已经在下面的文件夹中添加了测试脚本/java主类,我想在Cucumber测试套件之前执行:

  • 在中的POM.xml中添加了以下内容

  • 
    org.codehaus.mojo
    构建助手maven插件
    过程资源
    添加源
    src/test/java/BeforeSuite
    org.codehaus.mojo
    execmaven插件
    测试套件脚本之前
    生成测试资源
    JAVA
    BeforeSuite.HelloBeforeSuiteScript
    
    谢谢您的回答,我不确定我在这里遗漏了什么,请检查我添加到问题中的代码,并告诉我哪里出了问题,哪里出了问题。您的回复将不胜感激。@kalyanchavali这是一个新问题,与您最初的问题无关,我鼓励您发布一个新问题。
    src/test/java
    关注的是:为什么要这样做
    src/test/java
    是测试源目录,而不是main。此外,为什么要使用空标记
    ?请发布一个新问题。谢谢你的回答,我不确定我在这里遗漏了什么,请检查我添加到问题中的代码,让我知道哪里出了问题,哪里出了问题。您的回复将不胜感激。@kalyanchavali这是一个新问题,与您最初的问题无关,我鼓励您发布一个新问题。
    src/test/java
    关注的是:为什么要这样做
    src/test/java
    是测试源目录,而不是main。此外,为什么要使用空标记
    ?请发一个新问题。