首页 > 解决方案 > 从 Gradle 运行量角器测试

问题描述

我正在尝试在 Gradle 中运行一个运行量角器测试文件的任务,但是如果不从机器的路径启动 Selenium Server,我无法找到一种方法来仅从 Gradle 启动它。现在我正在使用:

task startSelenium {
    println "Starting Selenium..."
    ant.exec(executable: 'webdriver-manager', spawn: true) {
        arg(value: 'start')
    }
}

//run protractor
task runProtractor(type: Exec, dependsOn: ':startSeleniumServer') {
    commandLine 'protractor', 'src/test/javascript/e2e/conf.js'
}

但这里的情况是我正在启动一个本地服务器,并使用我的机器配置。有没有办法避免使用这些命令调用,只需启动服务器并从项目内部运行量角器文件?

谢谢!

标签: javaandroidselenium-webdrivergradleprotractor

解决方案


在你的中包含以下内容package.json,如果没有这个文件,npm init在项目文件夹下执行创建一个。

{
  "scripts": {
    "update-driver": "webdriver-manager update",
    "start-driver": "webdriver-manager start",
    "e2e": "protractor src/test/javascript/e2e/conf.js"
  },
  "dependencies": {
    "protractor": "^5.3.0",
  }
}

更改 Gradle 脚本如下:(假设机器上安装了 JDK 和 Nodejs)

task npmInstall(type: Exec) {
    commandLine 'npm', 'install'
}

task updateDriver(type: Exec, dependsOn: 'npmInstall') {
    commandLine 'npm', 'run update-driver'
}

task startDriver(type: Exec, dependsOn: 'updateDriver') {
    commandLine 'npm', 'run start-driver'
}

//run protractor
task runProtractor(type: Exec, dependsOn: ':startDriver') {
    commandLine 'npm', 'run e2e'
}

推荐阅读