我可以得到一个 aws lambda 来 运行 一个 rspec 测试吗?
Can i get an aws lambda to run an rspec test?
我在本地运行。
在 aws 中出现错误。
本地我用
run_lambda_function.rb
require_relative 'lambda_function'
lambda_handler(event: {}, context: Object.new)
调用
lambda_function.rb
require 'aws-sdk-lambda'
require 'json'
require 'rspec'
require 'capybara'
require 'capybara/rspec'
require 'webdrivers'
def lambda_handler(event:, context:)
@@short_sleep = 1 # just for these viewing and debugging purposes :)
Capybara.app_host = 'https://google.com'
RSpec::Core::Runner.run(['spec/google_spec.rb']) #, $stderr, $stdout)
end
使用规范:
spec/google_spec.rb
describe 'Visi Websites', type: :feature do
it 'can visit google' do
visit '/'
expect(page).to have_css('div')
sleep @@short_sleep
end
it 'can visit gogole/forms' do
visit '/forms'
expect(page).to have_css('div')
sleep @@short_sleep
end
end
这个 运行s 在本地,但是当我将代码捆绑到 vendor/ 并将其全部压缩时,将其上传到 lambda(由于依赖项的大小 > 50k,通过 S3 存储桶*)并尝试 运行 它在 aws mgtmt 控制台中我在 webdrivers 中得到一个错误:
我也许可以避免使用无服务器和其他方法,但我在学习时试图保持简单和低级,没有依赖和辅助。当然在合理范围内。没有箍。
- 依赖关系
宝石文件
用于测试时的本地捆绑,与(我认为)上传的代码无关,因为我将其捆绑到 /vendor 并将其全部压缩(因此体积较大,需要通过 s3 存储桶加载)
source 'http://rubygems.org'
gem 'rspec'
gem 'webdrivers'
gem 'capybara'
gem 'aws-sdk'
您似乎正尝试 运行 在 Lambda 环境中进行基于 GUI 的测试。 Lambda 无权访问显示设备。您应该尝试在 headless 模式下 运行 您的测试用例。
我在本地运行。
在 aws 中出现错误。
本地我用
run_lambda_function.rb
require_relative 'lambda_function'
lambda_handler(event: {}, context: Object.new)
调用
lambda_function.rb
require 'aws-sdk-lambda'
require 'json'
require 'rspec'
require 'capybara'
require 'capybara/rspec'
require 'webdrivers'
def lambda_handler(event:, context:)
@@short_sleep = 1 # just for these viewing and debugging purposes :)
Capybara.app_host = 'https://google.com'
RSpec::Core::Runner.run(['spec/google_spec.rb']) #, $stderr, $stdout)
end
使用规范:
spec/google_spec.rb
describe 'Visi Websites', type: :feature do
it 'can visit google' do
visit '/'
expect(page).to have_css('div')
sleep @@short_sleep
end
it 'can visit gogole/forms' do
visit '/forms'
expect(page).to have_css('div')
sleep @@short_sleep
end
end
这个 运行s 在本地,但是当我将代码捆绑到 vendor/ 并将其全部压缩时,将其上传到 lambda(由于依赖项的大小 > 50k,通过 S3 存储桶*)并尝试 运行 它在 aws mgtmt 控制台中我在 webdrivers 中得到一个错误:
我也许可以避免使用无服务器和其他方法,但我在学习时试图保持简单和低级,没有依赖和辅助。当然在合理范围内。没有箍。
- 依赖关系
宝石文件
用于测试时的本地捆绑,与(我认为)上传的代码无关,因为我将其捆绑到 /vendor 并将其全部压缩(因此体积较大,需要通过 s3 存储桶加载)
source 'http://rubygems.org'
gem 'rspec'
gem 'webdrivers'
gem 'capybara'
gem 'aws-sdk'
您似乎正尝试 运行 在 Lambda 环境中进行基于 GUI 的测试。 Lambda 无权访问显示设备。您应该尝试在 headless 模式下 运行 您的测试用例。