java - 从 Gradle 运行 Protractor 测试

标签 java android selenium-webdriver gradle protractor

我正在尝试在 Gradle 中运行一个运行 Protractor 测试文件的任务,但我找不到一种方法可以仅从 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'
}

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

谢谢!

最佳答案

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

关于java - 从 Gradle 运行 Protractor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607602/

相关文章:

java - 无法在 'findViewById()' 之后使用 'setContentView()' 获取对 EditText 的引用

java - 异步 JAX-RS 的目的是什么

Android Java 应用程序因 SIGSEGV 而崩溃

java - 如何从不同的可发送电子邮件的 html 文件构建单个 testNG 可发送电子邮件的报告

java - Selenium WebDriver Java Cycle 在同一字段中添加单词

java - 从java中的列表中获取列表?

Java Post 连接使用 Try 和资源

java - 带有Retrofit 2.0 Android的多部分请求花费太多时间来请求

android - 当用户在 android 中复制某些内容时如何得到通知?

node.js - 使用 Nodejs 在 selenium 中获取 Promise Pending