从Gradle运行量角器测试

时间:2018-05-30 14:45:59

标签: java android selenium-webdriver gradle protractor

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

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'
}

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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和Nodej)

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'
}