gpt4 book ai didi

gradle - 使用build.gradle执行特定的testng组

转载 作者:行者123 更新时间:2023-12-03 03:41:45 25 4
gpt4 key购买 nike

我检查了以下问题,但没有一个帮助您-

Gradle + TestNG Only Running Specified Group

Gradle command syntax for executing TESTNG tests as a group

我正在使用的项目位于-https://github.com/tarun3kumar/gradle-demo
这是标准的Maven项目,我没有使用testng.xml文件。
测试方法-com.org.corpsite.LandingPageTest分组为-smoke
我正在以-gradle clean test运行测试并执行了测试。测试由于真实原因而失败,我们将其忽略。

然后我从命令行通过了测试组-gradle clean test -P testGroups='doesnotexist'请注意,“doesnotexist”不是有效的组,但仍会执行测试。

之后,我在includeGroups中添加了build.gradle为-

test {
useTestNG() {
includeGroups 'smoke'
}
}

现在 gradle clean test -P testGroups='doesnotexist'在Java类之一上因NPE失败- java.lang.NullPointerException
at com.org.pageobjects.BasePage.findElements(BasePage.java:24)

问题-
  • 从命令行指定测试组的正确标志是什么?似乎-P错误,否则gradle clean test -P testGroups='doesnotexist'无法执行测试。
  • 指定includeGroups 'smoke'有什么问题?

  • 我在Macbook Pro上使用 Gradle 5.1

    最佳答案

    要使此功能生效,需要完成以下一系列工作。

  • 您需要将alwaysRun=true属性添加到基类@BeforeMethod@AfterMethodcom.org.core.SelTestCase批注中。这是为了确保TestNG始终执行这些配置方法,而不管选择了哪个组。
  • test中的build.gradle任务更改为如下所示:

  • test {
    def groups = System.getProperty('groups', 'smoke')
    useTestNG() {
    includeGroups groups
    }
    }

    这样可以确保我们尝试提取JVM参数 groups值。如果未指定,则默认为 smoke

    现在,我们通过使用以下命令指定所需的组来执行测试:
    ./gradlew clean test --info -Dgroups=smoke

    现在,如果我们执行以下命令,您会注意到没有执行任何测试。
    ./gradlew clean test --info -Dgroups=smoke1

    这是一个可以应用于您的项目的补丁
    From 25133a5d2a0f96d4a305f34e1f5a17e70be2bb54 Mon Sep 17 00:00:00 2001
    From: Krishnan Mahadevan <krishnan.mahadevan@stackoverflow.com>
    Date: Mon, 14 Jan 2019 22:38:27 +0530
    Subject: [PATCH] Fixing the bug

    ---
    build.gradle | 2 ++
    src/main/java/com/org/core/SelTestCase.java | 5 +++--
    2 files changed, 5 insertions(+), 2 deletions(-)

    diff --git a/build.gradle b/build.gradle
    index 10ba91d..2d08991 100644
    --- a/build.gradle
    +++ b/build.gradle
    @@ -38,7 +38,9 @@ task smokeTests(type: Test) {
    }*/

    test {
    + def groups = System.getProperty('groups', 'smoke')
    useTestNG() {
    + includeGroups groups
    }
    }

    diff --git a/src/main/java/com/org/core/SelTestCase.java b/src/main/java/com/org/core/SelTestCase.java
    index 80cad09..651529a 100644
    --- a/src/main/java/com/org/core/SelTestCase.java
    +++ b/src/main/java/com/org/core/SelTestCase.java
    @@ -22,7 +22,7 @@ public class SelTestCase {

    private WebDriver webDriver;

    - @BeforeMethod
    + @BeforeMethod(alwaysRun = true)
    @Parameters({"browser", "url"})
    public void setUp(@Optional("firefox") String browser, @Optional("https://www.google.com/") String URL) {
    switch (browser) {
    @@ -40,8 +40,9 @@ public class SelTestCase {
    webDriver.get(URL);
    }

    - @AfterMethod
    + @AfterMethod(alwaysRun = true)
    public void tearDown() {
    webDriver.quit();
    }
    +
    }
    --
    2.20.1

    您可以将上述内容保存到一个名为 mypatch.patch的文件中,然后按照 this StackOverFlow post中详述的说明来应用补丁。

    关于gradle - 使用build.gradle执行特定的testng组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54090060/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com