class TestRail::TestSuite
Public Class Methods
new(project_id:, suite_id:, testrail_client:)
click to toggle source
# File lib/testrail/test_suite.rb, line 9 def initialize(project_id:, suite_id:, testrail_client:) @project_id = project_id @suite_id = suite_id @testrail_client = testrail_client sections = testrail_client.get_sections(project_id: project_id, suite_id: suite_id) .map { |s| new_test_section(s) } @sections_by_name = Hash[sections.map { |s| [s.name, s] }] @sections_by_id = Hash[sections.map { |s| [s.id, s] }] @test_cases = Hash[testrail_client.get_test_cases(project_id: project_id, suite_id: suite_id) .lazy .map { |t| new_test_case(t) } .map { |t| [test_case_key(t.section.id, t.name), t] } .to_a] end
Public Instance Methods
close_test_run(run_id)
click to toggle source
# File lib/testrail/test_suite.rb, line 33 def close_test_run(run_id) @testrail_client.close_test_run(run_id) end
create_section(section_name)
click to toggle source
# File lib/testrail/test_suite.rb, line 45 def create_section(section_name) section = new_test_section(@testrail_client.create_section( project_id: @project_id, suite_id: @suite_id, section_name: section_name)) @sections_by_name[section_name] = section @sections_by_id[section.id] = section end
create_test_case(section_id:, name:)
click to toggle source
# File lib/testrail/test_suite.rb, line 54 def create_test_case(section_id:, name:) test_case = new_test_case(@testrail_client.create_test_case( section_id: section_id, name: name)) @test_cases[test_case_key(test_case.section.id, test_case.name)] = test_case end
get_or_create_section(section_name)
click to toggle source
# File lib/testrail/test_suite.rb, line 37 def get_or_create_section(section_name) @sections_by_name[section_name] || create_section(section_name) end
get_or_create_test_case(section_id:, name:)
click to toggle source
# File lib/testrail/test_suite.rb, line 41 def get_or_create_test_case(section_id:, name:) @test_cases[test_case_key(section_id, name)] || create_test_case(section_id: section_id, name: name) end
start_test_run()
click to toggle source
# File lib/testrail/test_suite.rb, line 24 def start_test_run run = @testrail_client.start_test_run(project_id: @project_id, suite_id: @suite_id) TestRun.new(suite: self, id: run['id']) end
submit_test_results(run_id:, results:)
click to toggle source
# File lib/testrail/test_suite.rb, line 29 def submit_test_results(run_id:, results:) @testrail_client.submit_test_results(run_id: run_id, results: results.map(&:to_hash)) end
Private Instance Methods
new_test_case(test_case)
click to toggle source
# File lib/testrail/test_suite.rb, line 74 def new_test_case(test_case) TestCase.new( id: test_case['id'], name: test_case['title'], section: @sections_by_id[test_case['section_id']], testrail_client: @testrail_client) end
new_test_section(section)
click to toggle source
# File lib/testrail/test_suite.rb, line 67 def new_test_section(section) TestSection.new( id: section['id'], name: section['name'], test_suite: self) end
test_case_key(section_id, name)
click to toggle source
# File lib/testrail/test_suite.rb, line 63 def test_case_key(section_id, name) { s: section_id, n: name } end