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

使用build.gradle执行特定的testng组,gradle,testng,build.gradle,Gradle,Testng,Build.gradle,我检查了以下问题,但都没有帮助- 我正在使用的项目可在以下网址获得: 这是标准的maven项目,我没有使用testng.xml文件。 测试方法-com.org.corpsite.LandingPageTest被归为-smoke 我正在以-gradle clean test的形式运行测试,测试已执行。由于真正的原因,测试失败,让我们忽略它 然后我通过了命令行中的测试组- gradleclean测试-P testGroups='doesnotexist' 请注意,“doesnotexist”不是

我检查了以下问题,但都没有帮助-

我正在使用的项目可在以下网址获得: 这是标准的maven项目,我没有使用testng.xml文件。 测试方法-
com.org.corpsite.LandingPageTest
被归为-
smoke

我正在以-
gradle clean test
的形式运行测试,测试已执行。由于真正的原因,测试失败,让我们忽略它

然后我通过了命令行中的测试组-
gradleclean测试-P testGroups='doesnotexist'
请注意,“doesnotexist”不是有效的组,但它仍然执行测试

在此之后,我在
build.gradle
中添加了
includegroup
,作为-

test {
    useTestNG() {
        includeGroups 'smoke'
    }
}
现在,
gradle clean test-p testGroups='doesnotextist'
在其中一个java类上使用NPE失败-
java.lang.NullPointerException
在com.org.pageobjects.BasePage.findElements(BasePage.java:24)

问题-

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

  • 我正在使用macbook pro上的
    Gradle 5.1
    您应该能够使用“TestInstrumentationRunGeneralGuments”标志运行特定测试:

    -Pandroid.testInstrumentationRunnerArguments.class=com.abc.NameOfMyTestClass
    

    您应该能够使用“TestInstrumentationRunneArguments”标志运行特定测试:

    -Pandroid.testInstrumentationRunnerArguments.class=com.abc.NameOfMyTestClass
    

    这里有一系列的事情需要做,以使这项工作

  • 您需要将属性
    alwaysRun=true
    添加到基类
    com.org.core.SelTestCase
    中的
    @beforethod
    @AfterMethod
    注释中。这是为了确保TestNG始终执行这些配置方法,而不管选择了哪个组
  • build.gradle
    中的
    test
    任务更改为如下所示:
  • 测试{
    def groups=System.getProperty('groups','smoke')
    useTestNG(){
    IncludeGroup组
    }
    }
    
    这确保我们尝试提取JVM参数
    groups
    值。如果未指定,则默认为
    冒烟

    现在,我们通过使用以下命令指定所需的组来执行测试:

    ./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
    
    自2513A5D2A0F96D4A305F34E1F5A17E70BE2BB54周一2001年9月17日00:00:00起
    发件人:克里希南·马哈德万
    日期:2019年1月14日星期一22:38:27+0530
    主题:[补丁]修复错误
    ---
    build.gradle | 2++
    src/main/java/com/org/core/SelTestCase.java | 5+++--
    2个文件已更改,5个插入(+),2个删除(-)
    diff——git a/build.gradle b/build.gradle
    索引10ba91d..2d08991 100644
    ---a/build.gradle
    +++b/build.gradle
    @@-38,7+38,9@@任务测试(类型:测试){
    }*/
    试验{
    +def groups=System.getProperty('groups','smoke')
    useTestNG(){
    +IncludeGroup组
    }
    }
    diff——git a/src/main/java/com/org/core/seltescase.java b/src/main/java/com/org/core/seltescase.java
    索引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类SelTestCase{
    私有WebDriver;
    -@before方法
    +@BeforeMethod(alwaysRun=true)
    @参数({“浏览器”,“url”})
    公共无效设置(@可选(“firefox”)字符串浏览器,@可选(“https://www.google.com/)字符串URL){
    开关(浏览器){
    @@-40,8+40,9@@public类SelTestCase{
    webDriver.get(URL);
    }
    -@AfterMethod
    +@AfterMethod(alwaysRun=true)
    公共无效拆卸(){
    webDriver.quit();
    }
    +
    }
    -- 
    2.20.1
    

    您可以将上述内容保存到一个文件中,比如说
    mypatch.patch
    ,然后使用中详述的说明应用补丁。

    以下是使其正常工作所需执行的一系列操作

  • 您需要将属性
    alwaysRun=true
    添加到基类
    com.org.core.SelTestCase
    中的
    @BeforeMethod
    @AfterMethod
    注释中。这是为了确保TestNG始终执行这些配置方法,而不管选择了哪个组
  • build.gradle
    中的
    test
    任务更改为如下所示:
  • 测试{
    def groups=System.getProperty('groups','smoke')
    useTestNG(){
    IncludeGroup组
    }
    }
    
    这确保了我们尝试提取JVM参数
    值。如果未指定,则默认为
    冒烟

    现在,我们通过使用以下命令指定所需的组来执行测试:

    ./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
    
    自2513A5D2A0F96D4A305F34E1F5A17E70BE2BB54周一2001年9月17日00:00:00起
    发件人:克里希南·马哈德万
    日期:2019年1月14日星期一22:38:27+0530
    主题:[补丁]修复错误
    ---
    build.gradle | 2++
    src/main/java/com/org/core/SelTestCase.java | 5+++--
    2个文件已更改,5个插入(+),2个删除(-)
    diff——git a/build.gradle b/build.gradle
    索引10ba91d..2d08991 100644
    ---a/build.gradle
    +++b/build.gradle
    @@-38,7+38,9@@任务测试(类型:测试){
    }*/
    试验{
    +def groups=System.getProperty('groups','smoke')
    useTestNG(){
    +IncludeGroup组
    }
    }
    diff——git a/src/main/java/com/org/core/seltescase.java b/src/main/java/com/org/core/seltescase.java
    索引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类SelTestCase{
    私有WebDriver WebDriver