class Qaxqa::Testsuite
Module class to set XML parsed attributes to a suitecase object
require “byebug”
Attributes
details[RW]
subject[RW]
test_name[RW]
testcases[RW]
testsuites[RW]
Public Class Methods
has_suite?(node)
click to toggle source
# File lib/qaxqa/testsuite.rb, line 9 def self.has_suite?(node) node.xpath('./testsuite').size > 0 end
parse(doc)
click to toggle source
# File lib/qaxqa/testsuite.rb, line 37 def self.parse(doc) root = doc.xpath("//testsuite/testsuite") main_subject = root.first.attributes["name"].value suites = [] # Parse suites root.each do |node| unless node.attributes["name"].nil? suite = Testsuite.new suite.subject = main_subject suite.test_name = node.attributes["name"].value suite.details = node.xpath("./details").text suite.testcases = self.parse_testcases node suite.testsuites = [] if self.has_suite? node subnode = node.xpath("./testsuite") subnode.each do |sn| subsuite = Testsuite.new subsuite.subject = main_subject subsuite.test_name = sn.attributes["name"].value subsuite.details = sn.xpath("./details").text subsuite.testcases = self.parse_testcases sn subsuite.testsuites = [] suite.testsuites << subsuite end end suites << suite end end return suites end
parse_testcases(testsuite)
click to toggle source
Parse testcases
# File lib/qaxqa/testsuite.rb, line 14 def self.parse_testcases(testsuite) testcases = [] testsuite.xpath("./testcase").each do |tc| testcase = Testcase.new testcase.steps = [] testcase.subject = testsuite.attributes["name"].value testcase.test_name = tc.attributes["name"].value testcase.summary = tc.xpath("./summary").text testcase.preconditions = tc.xpath("./preconditions").text testcase.test_type = "Manual" # Parse steps tc.xpath("./steps/*").each do |step_node| step = Step.new step.step_number = step_node.xpath("./step_number").text step.actions = step_node.xpath("./actions").text step.expectedresults = step_node.xpath("./expectedresults").text testcase.steps << step end testcases << testcase end return testcases end