当前位置: 首页 > 知识库问答 >
问题:

从Jenkins参数化构建管理TestNg套件

柳宏深
2023-03-14

我在Jenkins和Maven中运行测试,在几个TestNG中有不同的测试套件。xml文件。现在,我直接在pom中以以下方式管理它们:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${surefire.version}</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>Testing_Fuzzy_Logic.xml</suiteXmlFile>
            <suiteXmlFile>Testing_ACL.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

但是我希望能够在开始Jenkins构建时选择特定的测试套件。如果我没有选择特定的套件,我希望所有套件都作为默认值包含在构建中。所以我的问题是:

写我所有的TestNG的正确方法是什么。Jenkins参数中的xml文件,并将其发送到pom文件,要求Maven在运行测试时使用它们?

像这样的东西:

詹金斯变量:

以某种方式将其设置为pom文件:

共有3个答案

董霖
2023-03-14

test-DsuiteXmlFile=src/test/resources/testng1。xml,src/test/resources/testng2。xml

如何确定测试套件执行的优先级以这种方式传递?

我也面临同样的问题,我已经将它拆分为单独的Jenkins构建,每个构建都经过单独的套件,以确保某些套件在其他套件之前运行。我想简化它,可能通过上面提到的这种方式。。。但是你试过执行的顺序了吗?谢谢

葛成双
2023-03-14

在jenkins上,您可以通过以下格式的顶级maven进球

test -DargLine="-DTest_NG_XML=src/test/resources/testng.xml"

这样,您在运行maven测试阶段时传递Test_NG_XML变量的值。一般来说,在詹金斯的马文进球后执行。

-DargLine="-Dparameter=value"
宋烨烁
2023-03-14

上面的一个例子解决了这个问题。起初,文件名中有一个错误,这让我很困惑。我修复了它,我的示例现在可以正常工作了。

所以解决方案之一是:一个字符串TEST_NG_XML参数,它被添加到参数化的Jenkins构建中。所有测试套件都在那里设置,默认情况下用逗号分隔。需要时,可以移除其中任何一个(参见上面的示例)。

但如果还有其他解决方案,我很乐意看到。

 类似资料:
  • 问题内容: 我在Jenkins中配置了项目,该项目轮询SCM并在发布更改时开始构建。有一个后构建动作来构建另一个项目。我的问题是,之后要构建的项目具有其自己的参数。如何知道生成后操作触发时指定了哪个参数?现在,如果我使用“选择”,是否只是选择第一个?我如何挑选其他人? 问题答案: 好吧,让我们一个接一个:) 如果要查看使用了哪个参数,可以安装此插件:显示构建参数插件 如果要使用特定参数触发构建,请

  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

  • 我想建立工作与建立参数在Jenkins管道。 < li >在Git参数插件中声明了一个变量 < li >尝试访问脚本中的分支名称 不幸的是,作业无法列出分支,它抛出了java异常错误。 Git 参数插件配置

  • 问题内容: 我正在使用Jenkins的 “扩展选择参数” 插件,并希望安排构建定期运行而无需人工干预。 从下拉列表中选择构建的参数。 该参数的下拉列表是通过外部脚本生成的,我一直想选择最高的值作为默认值。 有没有办法选择最上面的元素作为计划作业的默认值? 我阅读了一些使用url远程运行作业的方法,但我希望可以通过仅更改作业配置来实现此目的,从而不必为它管理单独的脚本。 我的Jenkins实例在Li

  • Stackoverflow帮助我达到了这一点,但现在我完全卡住了,这是我的问题: 我目前正在开发几个测试来检查一个网站。我在Eclipse中使用Java编写代码,使用带有ReportNG的testNG插件进行报告,所有这些都使用Windows 7 pro。 我的测试很有效,而且我的报告生成得很好,所以现在我必须为我的公司把它放在Jenkins上,这样他们就会每X小时运行一次我的测试。 为了启动测试

  • 问题内容: 我有一个jenkins管道,其设置如下,其中Build A是管道的开始,并在完成时触发构建B,依此类推(如下所示)。到目前为止,我已经实现了Build A,B和C。我使用了Jenkins参数化的Trigger插件作为构建后的动作来触发我的构建。 无论如何,在构建B完成之后,有什么我可以根据构建B之后的构建用fork启动构建的参数的方法,如下所示。Build C和Build D是将部署到