我正在尝试在 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/