使用build.gradle执行特定的testng组
我检查了以下问题,但都没有帮助- 我正在使用的项目可在以下网址获得: 这是标准的maven项目,我没有使用testng.xml文件。 测试方法-使用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”不是
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