java - 从 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'
}
但这里的情况是我正在启动一个本地服务器,并使用我的机器配置。有没有办法避免使用这些命令调用,只需启动服务器并从项目内部运行量角器文件?
谢谢!
解决方案
在你的中包含以下内容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'
}
推荐阅读
- c# - NETSDK1045 当前的 .NET SDK 不支持面向 .NET Core 3.1 - 由缓存引起?
- ruby-on-rails - RSpec 请求规范没有为发布请求传递参数
- asp.net-core - 如何在 asp.net core 3.1 的同一会话中设置不同的通用列表值
- kubernetes - Nginx 入口路由问题
- spring-boot - ActiveMQ Artemis 队列不会将消息平均分配给 STOMP 消费者。我们如何才能实现均匀的负载平衡?
- c++ - 如何验证您的处理器是否支持超线程?
- android - 汉堡图标不会关闭导航抽屉
- python - 数据未打印到 CSV 文件
- python - 如何在 Python 中设置财政年度的动态开始和结束日期
- java - 如何忽略 ConcurrentModificationException