qaxqa 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 409afbda05836886fdf360aad8b0ed9efa2d8d49
4
- data.tar.gz: a2efffbf3a61e1818c65f6e543bec76bce0b31fe
3
+ metadata.gz: 65c7e6593d86bb8f6e82dbd4e10ccb9697fe5f22
4
+ data.tar.gz: c2110cf9836ad4e27fdd5ac810ba55926cffbc26
5
5
  SHA512:
6
- metadata.gz: d1ed8f65b873d33acbd190ed58e6acfa8185b56c6790d5c05e9a50154c95cef922d355f2181b83e4cff3181caade9b7d24549287eb9fc8840adb3d0604d6b5ac
7
- data.tar.gz: 654aaf984f4aaad10f4f8fb7b4b2b839cfafdd21dfc2c67067ca892310f32704f0700e9f9afff5e8f614cf9f0ce48b727f35ff8147fc1865ec05659d10b5efb6
6
+ metadata.gz: f1c2963433505ee554877d7274ea725292f2f20013f600cf3dd9c39546ca5e109e4fd9aee669e1570e8b6235b91b499d8b1681afea231c46b45ed3a9caf99c48
7
+ data.tar.gz: 578414e0aa6818a4e200ef49c8ccf542ee6086b4d3aef82e2b25645ce3f9b2444b47528554ed09f8a7eac4fcf5e4d89e80161c8006fcd629968d0015a7bc0d8f
@@ -1,4 +1,3 @@
1
- require 'byebug'
2
1
  require 'qaxqa/all_suite'
3
2
  module Qaxqa
4
3
  # Migrate given xml files and outputs to XLS HP Quality Center format
@@ -13,6 +12,23 @@ module Qaxqa
13
12
 
14
13
  private
15
14
 
15
+ def insert_cases(ws, cases, line)
16
+ cases.each_with_index do |tc|
17
+ tc.steps.each_with_index do |step|
18
+ line +=1
19
+ ws.add_cell(line, 0, tc.subject)
20
+ ws.add_cell(line, 1, tc.test_name)
21
+ ws.add_cell(line, 2, tc.summary)
22
+ ws.add_cell(line, 3, tc.preconditions)
23
+ ws.add_cell(line, 4, step.step_number)
24
+ ws.add_cell(line, 5, step.actions)
25
+ ws.add_cell(line, 6, step.expectedresults)
26
+ ws.add_cell(line, 7, tc.test_type)
27
+ end
28
+ end
29
+ return line
30
+ end
31
+
16
32
  def to_hpqc(file)
17
33
  suites = extract file
18
34
  workbook = RubyXL::Workbook.new
@@ -20,23 +36,20 @@ module Qaxqa
20
36
  set_header worksheet
21
37
  line = 0
22
38
  suites.testsuites.each_with_index do |s|
39
+ subject_name = s.subject
23
40
  line += 1
24
- worksheet.add_cell(line, 0, s.subject)
25
- worksheet.add_cell(line, 1, s.test_name)
26
- worksheet.add_cell(line, 2, s.details)
27
- s.testcases.each_with_index do |tc|
28
- tc.steps.each_with_index do |step|
29
- line +=1
30
- worksheet.add_cell(line, 0, tc.subject)
31
- worksheet.add_cell(line, 1, tc.test_name)
32
- worksheet.add_cell(line, 2, tc.summary)
33
- worksheet.add_cell(line, 3, tc.preconditions)
34
- worksheet.add_cell(line, 4, step.step_number)
35
- worksheet.add_cell(line, 5, step.actions)
36
- worksheet.add_cell(line, 6, step.expectedresults)
37
- worksheet.add_cell(line, 7, tc.test_type)
41
+ if s.testsuites.size > 0
42
+ s.testsuites.each do |ss|
43
+ worksheet.add_cell(line, 0, subject_name)
44
+ worksheet.add_cell(line, 1, ss.test_name)
45
+ worksheet.add_cell(line, 2, ss.details)
46
+ line = insert_cases(worksheet, ss.testcases, line) if ss.testcases.size > 0
38
47
  end
39
48
  end
49
+ worksheet.add_cell(line, 0, subject_name)
50
+ worksheet.add_cell(line, 1, s.test_name)
51
+ worksheet.add_cell(line, 2, s.details)
52
+ line = insert_cases(worksheet, s.testcases, line) if s.testcases.size > 0
40
53
  end
41
54
  workbook.write("output.xlsx")
42
55
  end
@@ -3,7 +3,35 @@ module Qaxqa
3
3
  # Module class to set XML parsed attributes to a suitecase object
4
4
  class Testsuite
5
5
 
6
- attr_accessor :subject, :test_name, :details, :testcases
6
+ attr_accessor :subject, :test_name, :details, :testcases, :testsuites
7
+
8
+ def self.has_suite?(node)
9
+ node.xpath('./testsuite').size > 0
10
+ end
11
+
12
+ # Parse testcases
13
+ def self.parse_testcases(testsuite)
14
+ testcases = []
15
+ testsuite.xpath("./testcase").each do |tc|
16
+ testcase = Testcase.new
17
+ testcase.steps = []
18
+ testcase.subject = suite.subject
19
+ testcase.test_name = tc.attributes["name"].value
20
+ testcase.summary = tc.xpath("./summary").text
21
+ testcase.preconditions = tc.xpath("./preconditions").text
22
+ testcase.test_type = "Manual"
23
+ # Parse steps
24
+ tc.xpath("./steps/*").each do |step_node|
25
+ step = Step.new
26
+ step.step_number = step_node.xpath("./step_number").text
27
+ step.actions = step_node.xpath("./actions").text
28
+ step.expectedresults = step_node.xpath("./expectedresults").text
29
+ testcase.steps << step
30
+ end
31
+ testcases << testcase
32
+ end
33
+ return testcases
34
+ end
7
35
 
8
36
  def self.parse(doc)
9
37
  root = doc.xpath("//testsuite/testsuite")
@@ -16,26 +44,20 @@ module Qaxqa
16
44
  suite.subject = main_subject
17
45
  suite.test_name = node.attributes["name"].value
18
46
  suite.details = node.xpath("./details").text
19
- suite.testcases = []
20
- # Parse testcases
21
- node.children.xpath("./testcase").each do |tc|
22
- testcase = Testcase.new
23
- testcase.steps = []
24
- testcase.subject = suite.subject
25
- testcase.test_name = tc.attributes["name"].value
26
- testcase.summary = tc.xpath("./summary").text
27
- testcase.preconditions = tc.xpath("./preconditions").text
28
- testcase.test_type = "Manual"
29
- # Parse steps
30
- tc.xpath("./steps/*").each do |step_node|
31
- step = Step.new
32
- step.step_number = step_node.xpath("./step_number").text
33
- step.actions = step_node.xpath("./actions").text
34
- step.expectedresults = step_node.xpath("./expectedresults").text
35
- testcase.steps << step
36
- end
47
+ suite.testcases = self.parse_testcases node
48
+ suite.testsuites = []
37
49
 
38
- suite.testcases << testcase
50
+ if self.has_suite? node
51
+ subnode = node.xpath("./testsuite")
52
+ subnode.each do |sn|
53
+ subsuite = Testsuite.new
54
+ subsuite.subject = main_subject
55
+ subsuite.test_name = sn.attributes["name"].value
56
+ subsuite.details = sn.xpath("./details").text
57
+ subsuite.testcases = self.parse_testcases sn
58
+ subsuite.testsuites = []
59
+ suite.testsuites << subsuite
60
+ end
39
61
  end
40
62
  suites << suite
41
63
  end
data/lib/qaxqa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Qaxqa
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
data/output.xlsx CHANGED
Binary file
data/qaxqa.gemspec CHANGED
@@ -36,9 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "rubyXL"
37
37
 
38
38
  # Development
39
- spec.add_development_dependency "simplecov"
40
- spec.add_development_dependency "pry"
41
- spec.add_development_dependency "pry-byebug"
42
39
  spec.add_development_dependency "bundler", "~> 1.13"
43
40
  spec.add_development_dependency "rake", "~> 10.0"
44
41
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qaxqa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronaldo Possan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -66,48 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: simplecov
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry-byebug
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
69
  - !ruby/object:Gem::Dependency
112
70
  name: bundler
113
71
  requirement: !ruby/object:Gem::Requirement