Tar*_*run 2 testng gradle build.gradle
我检查了以下问题,但没有一个有帮助-
用于作为一个组执行 TESTNG 测试的 Gradle 命令语法
我正在使用的项目位于 - 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'
}
}
Run Code Online (Sandbox Code Playgroud)
现在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'?我Gradle 5.1在 macbook pro 上使用
以下是需要完成的一系列工作才能使其发挥作用。
alwaysRun=true到您的基类@BeforeMethod和@AfterMethod注释中com.org.core.SelTestCase。这是为了确保无论选择哪个组,TestNG 始终执行这些配置方法。test您的任务更改为build.gradle如下所示:test {
def groups = System.getProperty('groups', 'smoke')
useTestNG() {
includeGroups groups
}
}
Run Code Online (Sandbox Code Playgroud)
这确保我们尝试提取 JVM 参数groups值。如果未指定,我们默认为smoke.
我们现在通过使用以下命令指定所需的组来执行测试:
./gradlew clean test --info -Dgroups=smoke
Run Code Online (Sandbox Code Playgroud)
现在,如果我们执行以下命令,您会注意到没有执行任何测试。
./gradlew clean test --info -Dgroups=smoke1
Run Code Online (Sandbox Code Playgroud)
这是您可以应用于您的项目的补丁
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
Run Code Online (Sandbox Code Playgroud)
您可以将上述内容保存到一个文件中mypatch.patch,然后使用此 StackOverFlow 帖子中详述的说明应用补丁。
| 归档时间: |
|
| 查看次数: |
2725 次 |
| 最近记录: |