Class: TestrailRSpec::UpdateTestRails
- Inherits:
-
Object
- Object
- TestrailRSpec::UpdateTestRails
- Defined in:
- lib/testrail-rspec/update-testrails.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
Instance Method Summary collapse
- #fetch_status_ids ⇒ Object
-
#initialize(scenario) ⇒ UpdateTestRails
constructor
A new instance of UpdateTestRails.
- #upload_result ⇒ Object
Constructor Details
#initialize(scenario) ⇒ UpdateTestRails
Returns a new instance of UpdateTestRails.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/testrail-rspec/update-testrails.rb', line 7 def initialize(scenario) @scenario = scenario if File.exist? './testrail_config.yml' @config = YAML.load_file("./testrail_config.yml")['testrail'] raise 'TestRail configuration file not loaded successfully' if @config.nil? else raise 'TestRail configuration file is required' end return if [@config['allow'].nil?, @config['allow']].all? false setup_testrail_client config_validator if $config_validator.nil? end |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
5 6 7 |
# File 'lib/testrail-rspec/update-testrails.rb', line 5 def client @client end |
Instance Method Details
#fetch_status_ids ⇒ Object
64 65 66 |
# File 'lib/testrail-rspec/update-testrails.rb', line 64 def fetch_status_ids client.send_get('get_statuses') end |
#upload_result ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/testrail-rspec/update-testrails.rb', line 22 def upload_result return if [@config['allow'].nil?, @config['allow']].all? false response = {} case_list = [] @scenario.full_description.split(' ').map do |e| val = e.scan(/\d+/).first next if val.nil? case_list << val end return if case_list.empty? if (@scenario.exception) && (!@scenario.exception..include? 'pending') status_id = get_status_id 'failed'.to_sym = @scenario.exception. elsif @scenario.skipped? status_id = get_status_id 'blocked'.to_sym = "This test scenario is skipped from test execution" elsif @scenario.pending? status_id = get_status_id 'blocked'.to_sym = "This test scenario is pending for test execution" else status_id = get_status_id 'passed'.to_sym = "This test scenario was automated and passed successfully" end @run_id ||= @config['run_id'] @run_id = @@run_id rescue @@run_id = nil unless @config['run_id'] @run_id = @@run_id = client.create_test_run("add_run/#{@config['project_id']}", {"suite_id": @config['suite_id']}) if @run_id.nil? case_list.map do |case_id| check_avail(:case_id, case_id) response = client.send_post( "add_result_for_case/#{@run_id}/#{case_id}", {status_id: status_id, comment: } ) end response end |