qaxqa 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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