【问题标题】:Jenkins Maven: How to create independent jobs with single POM fileJenkins Maven:如何使用单个 POM 文件创建独立作业
【发布时间】:2017-04-24 16:05:39
【问题描述】:

我已经配置了我的 Jenkins/Maven 项目,它会从 POM 文件配置中读取我的 TestNG 测试,其中test.xml 文件包含要运行测试的说明。

如果我将更多测试添加到 XML 文件(例如 Test1 和 Test2),它们将依赖于同一个 POM 文件,当我在 Jenkins 中创建作业时,两个测试都会运行在一份 Jenkins 工作中。

我的问题是:
如何配置 MavenJenkins 以便能够在 Jenkins 中创建两个单独的作业(作业测试 1 和作业测试 2 ) 但使用单个 POM 文件

【问题讨论】:

  • 为什么需要运行不同的测试集?为什么不一直运行所有测试?听起来那些测试不属于那个模块?
  • 因为我的测试有 DataProviders 并且每个测试都在一个循环中运行不止一次。所以我想在 Jenkins 中将每个测试分别作为一个单独的任务执行。

标签: java maven jenkins testng


【解决方案1】:

我的建议是 - 创建不同的 Maven's profiles 并针对特定 Jenkins 的工作执行它。

例如,您有 2 个不同的测试类,您可以在 pom 文件中为每个类创建一个特定的配置文件:

<profiles>
    <profile>
        <id>test1</id>
        <properties>
            <suite.pattern>**/TestOne.java</suite.pattern>
        </properties>
    </profile>
    <profile>
        <id>test2</id>
        <properties>
            <suite.pattern>**/TestTwo.java</suite.pattern>
        </properties>
    </profile>

现在您可以单独运行它们了:

mvn clean test -P test1

mvn clean test -P test2

因此,您可以配置两个 Jenkins 作业。

【讨论】:

  • 太棒了,我认为这是我需要的,但不清楚如何正确地将其放入 POM 文件中,因为现在我调用运行我的 TestNG 测试的 testng.xml 文件。该文件包含要运行的测试的描述。我可以摆脱这个 testng.xml 并在 POM 文件中使用 来运行我的测试吗?
  • @Postavshik 你可以做到这一点。只需评论您是调用 testng.xml 的插件并将配置文件部分添加到 pom。
  • 感谢您的完美工作!我在谷歌上搜索 并找到 0 个信息。我很惊讶你是怎么知道这种方法的,但它确实有效。还有一个问题。假设我在一个 Java 类中有两个测试,我只想运行其中一个。我应该使用什么节点以及如何使用?非常感谢!
  • @Postavshik 你可以使用TestNG注解来指定特定的方法@Test(enabled = false)。此外,如果您需要对某些配置文件进行更多控制,您可以向其添加插件 -> 并为其添加更多配置。
  • 我很想,但是由于我最近在这里注册并且声誉很低,系统不允许我这样做:(
【解决方案2】:

我找到了另一个解决方案。 在 Jenkins 项目配置中需要编写如下命令: -Dtest=FirefoxTest2.java clean test

不需要在 POM 文件中添加任何关于 java 类的额外信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多