class CloudTest::CLI
Public Instance Methods
each(*commands)
click to toggle source
# File lib/cloud_test/cli.rb, line 72 def each(*commands) require 'open3' config = Core.load_config config['browsers'].keys.each { |browser_config_name| Open3.popen2e({'CLOUD_TEST' =>browser_config_name.to_s}, commands.join(" ")) do |stdin, stdout_err, wait_thr| unless options[:q] while line = stdout_err.gets puts line end end exit_status = wait_thr.value if exit_status == 0 puts "Test on browser: #{browser_config_name} was successful!" else puts "Error on browser: #{browser_config_name}!" puts stdout_err.read puts "Error on browser: #{browser_config_name}!" end end } end
generate()
click to toggle source
# File lib/cloud_test/cli.rb, line 31 def generate() case options[:provider].to_s.downcase when 'lambdatest', 'lt', 'l' provider = 'lambdatest' when 'crossbrowsertesting', 'cbs', 'ct', 'cbt', 'c' provider = 'crossbrowsertesting' when 'saucelabs', 'sauce', 'sc', 'sl', 's' provider = 'saucelabs' else provider = 'browserstack' end CloudTest::Generators::Config.start([provider]) CloudTest::Generators::Support.start() end
generate_config(config)
click to toggle source
# File lib/cloud_test/cli.rb, line 25 def generate_config(config) CloudTest::Generators::Config.start([config]) end
list_caps(provider)
click to toggle source
# File lib/cloud_test/cli.rb, line 13 def list_caps(provider) hash = {"provider" => provider} Core.get_provider_class(hash).get_all_caps end
list_default_caps(provider)
click to toggle source
# File lib/cloud_test/cli.rb, line 19 def list_default_caps(provider) hash = {"provider" => provider} Core.get_provider_class(hash).list_caps end
start()
click to toggle source
# File lib/cloud_test/cli.rb, line 48 def start() require 'open3' config = Core.load_config config['browsers'].keys.each { |browser_config_name| Open3.popen2e({'CLOUD_TEST' =>browser_config_name.to_s}, "bundle" ,"exec", "cucumber", "-t","#{config['cucumber_tag'].to_s}") do |stdin, stdout_err, wait_thr| unless options[:q] while line = stdout_err.gets puts line end end exit_status = wait_thr.value if exit_status == 0 puts "Test on browser: #{browser_config_name} was successful!" else puts "Test on browser: #{browser_config_name} was not successful!" puts stdout_err raise "did not work" end end } end
test_connection()
click to toggle source
# File lib/cloud_test/cli.rb, line 95 def test_connection() require 'net/http' require 'uri' config = CloudTest::Core.load_config request, uri, request, server = Hash.new if config.has_key?('provider') && config.has_key?('user') && config.has_key?('key') case config.delete 'provider'.to_s.downcase when 'browserstack', 'bs', 'b' server = "https://www.browserstack.com/local/v1/list?auth_token=#{config['key']}&last=1" when 'lambdatest', 'lt', 'l' server = "https://api.lambdatest.com/automation/api/v1/tunnels" uri = URI.parse(server) request = Net::HTTP::Get.new(uri) request.basic_auth(config['user'], config['key']) when 'crossbrowsertesting', 'cbs', 'ct', 'cbt', 'c' server = "https://crossbrowsertesting.com/api/v3/tunnels" uri = URI.parse(server) request = Net::HTTP::Get.new(uri) request.basic_auth(config['user'].sub("@", "%40"), config['key']) when 'saucelabs', 'sauce', 'sc', 'sl', 's' server = "https://saucelabs.com/rest/v1/#{config['user']}/tunnels" uri = URI.parse(server) request = Net::HTTP::Get.new(uri) request.basic_auth(config['user'], config['key']) else puts "Unknown provider!" return end uri ||= URI.parse(server) request ||= Net::HTTP::Get.new(uri) request["Accept"] = "application/json" req_options = { use_ssl: uri.scheme == "https", } response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end if response.code == '200' puts "Connection successful!" else puts "Connection was not successful! :(" puts response.code end else puts "You have not all necessary keys in your config file. `provider`, `user`, `key` are necessary" end end
version()
click to toggle source
# File lib/cloud_test/cli.rb, line 145 def version say "cloud_test version: #{CloudTest::VERSION}" end