当前位置: 首页 > 知识库问答 >
问题:

在多个浏览器上使用gradle运行特定测试

姬心思
2023-03-14

我正在使用GEB/Spock进行自动化测试。我正在使用Gradle作为我的构建工具。

我想调用不同的gradle任务来构建和运行一个特定的规范(测试)或一套规范。

plugins {
    id "idea"
    id "groovy"
    id "com.energizedwork.webdriver-binaries" version "1.4"
    id "com.energizedwork.idea-base" version "1.4"
}

ext {
    // The drivers we want to use
    drivers = ["firefox", "chrome", "chromeHeadless"]

    ext {
        groovyVersion = '2.4.12'
        gebVersion = '2.2'
        seleniumVersion = '3.6.0'
        chromeDriverVersion = '2.32'
        geckoDriverVersion = '0.18.0'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    // If using Spock, need to depend on geb-spock
    testCompile "org.gebish:geb-spock:$gebVersion"
    testCompile("org.spockframework:spock-core:1.1-groovy-2.4") {
        exclude group: "org.codehaus.groovy"
    }
    testCompile "org.codehaus.groovy:groovy-all:$groovyVersion"

    // If using JUnit, need to depend on geb-junit (3 or 4)
    testCompile "org.gebish:geb-junit4:$gebVersion"

    // Drivers
    testCompile "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
    testCompile "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
}

webdriverBinaries {
    chromedriver chromeDriverVersion
    geckodriver geckoDriverVersion
}

drivers.each { driver ->
    task "${driver}Test"(type: Test) {
        group JavaBasePlugin.VERIFICATION_GROUP

        outputs.upToDateWhen { false }  // Always run tests

        systemProperty "geb.build.reportsDir", reporting.file("geb/$name")
        systemProperty "geb.env", driver
    }
}

test {
    dependsOn drivers.collect { tasks["${it}Test"] }
    enabled = false
}

tasks.withType(Test) {
    maxHeapSize = "1g"
    jvmArgs '-XX:MaxMetaspaceSize=128m'
    testLogging {
        exceptionFormat = 'full'
    }
}

tasks.withType(GroovyCompile) {
    groovyOptions.forkOptions.memoryMaximumSize = '256m'
}
task dataGen {
    include '**com.company.project.spec.util/DataGenerationUtilSpec.groovy'
}

task sanity {
    include '**com.company.project.spec.sanity.*'
}
Could not find method include() for arguments [**com.company.project.spec.util/DataGenerationUtilSpec.groovy] on task ':dataGen' of type org.gradle.api.DefaultTask

显然,已经有了现有的构建指令,因为我可以调用gradle build,而且所有的规范都在Chrome上运行,我只是不知道如何添加更多的任务

共有1个答案

濮阳研
2023-03-14

我认为这两个任务是test任务,所以应该如下所示:

task dataGen (type: Test) {
    include '**com.company.project.spec.util/DataGenerationUtilSpec.groovy'
}

task sanity (type: Test) {
    include '**com.company.project.spec.sanity.*' 
}
 类似资料:
  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。

  • 我正在探索硒网格,用于在多个浏览器上执行测试。我已经按照在线教程配置了集线器和节点。我已经创建了一个测试脚本。 这是测试脚本的代码: 我的目标是在多个浏览器上运行此测试,我已经添加了所需的功能,如火狐, 感谢任何帮助

  • 问题内容: 我有一种创建2个远程Web驱动程序的方法。一个带有chrome,另一个带有Firefox: Driver.cs 然后我有一个Test类: } 问题是当Driver.Intialize被调用时,它无法同时运行chrome和firefox。我要发生的是,调用Init方法时,它将启动两个浏览器并在每个浏览器中运行测试方法。 问题答案: 我目前使用NUnit的方式。我遇到了同样的问题,找不到使

  • 问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文

  • 问题内容: 我正在尝试通过for循环在多个浏览器中运行相同的测试,但它始终仅在Firefox上运行。 一项有趣的观察;当我包含该参数时,它仅在Internet Explorer上运行。 Selenium Webdriver是否以这种方式工作,或者我的理解是错误的? 问题答案: 我实际上已经在Java中完成了此操作,以下对我来说效果很好: 如果您要使用其他语言编写测试,则当然需要对此进行调整,我知道

  • 问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,