branchcov-xmlruby-sonar 0.0.0 → 0.0.2
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 +4 -4
- data/lib/ruby_branch_cover.rb +48 -50
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45bff990681073cd41d264e719efd2d3eff05ebdd14a9f8b911ccebeaafbe52a
|
4
|
+
data.tar.gz: e487214a7fe689abda69cb384c07c7ab9a5678dcaa90ab2f280f233e921a53fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b39b97633e02de6e16100f754272a98257370e54e759cf1c55808ecc7f5772ce302f406097b3eeb537c02e78e556883eafb789375014719f0eb13fb6b9303486
|
7
|
+
data.tar.gz: f75e4a98e466d4a85eba3be0fceb79c0076cc27b0103fb419d6456ebc784857ad64567b10ef2adf3607dcf77abd709936c065846554f8c9b8874e3d680e7c3f4
|
data/lib/ruby_branch_cover.rb
CHANGED
@@ -4,36 +4,36 @@ require 'builder'
|
|
4
4
|
class RubyBranchCover
|
5
5
|
|
6
6
|
# To check line already present in list of lineToCover element
|
7
|
-
def
|
8
|
-
|
9
|
-
|
|
10
|
-
if
|
7
|
+
def check_for_duplicate_line(line_number, line_tocover_elements)
|
8
|
+
line_tocover_elements.each_with_index do
|
9
|
+
|element, idx|
|
10
|
+
if element[:lineNumber] == line_number
|
11
11
|
return idx
|
12
12
|
end
|
13
13
|
end
|
14
14
|
return -1
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
17
|
+
def find_notcovered_branches(condtions_map)
|
18
|
+
not_covered = 0
|
19
|
+
condtions_map.each do
|
20
20
|
|condition, hitCount|
|
21
21
|
if hitCount == 0
|
22
|
-
|
22
|
+
not_covered+=1
|
23
23
|
end
|
24
24
|
end
|
25
|
-
return
|
25
|
+
return not_covered
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
28
|
+
def prepare_xml_builder(xml, file_elements)
|
29
29
|
xml.coverage("version" => "1") do
|
30
|
-
|
30
|
+
file_elements.each do
|
31
31
|
|fileElement|
|
32
32
|
xml.file("path" => fileElement[:path]) do
|
33
33
|
fileElement[:lineElements].each do
|
34
|
-
|
|
35
|
-
xml.lineToCover("lineNumber"=>
|
36
|
-
"branchesToCover"=>
|
34
|
+
|element|
|
35
|
+
xml.lineToCover("lineNumber"=>element[:lineNumber], "covered"=>element[:covered],
|
36
|
+
"branchesToCover"=>element[:branchesToCover], "coveredBranches"=>element[:coveredBranches])
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -41,57 +41,55 @@ class RubyBranchCover
|
|
41
41
|
end
|
42
42
|
|
43
43
|
|
44
|
-
def
|
45
|
-
|
46
|
-
# puts dirname
|
47
|
-
file = File.read('coverage/.resultset.json')
|
44
|
+
def read_json_and_getxml(filepath)
|
45
|
+
file = File.read(filepath)
|
48
46
|
data_hash = JSON.parse(file)
|
49
|
-
|
50
|
-
unless data_hash['RSpec'] == nil
|
51
|
-
puts "Rspec and coverage key found"
|
47
|
+
file_elements = []
|
48
|
+
unless data_hash.empty? || data_hash['RSpec'] == nil || data_hash['RSpec']['coverage'] == nil
|
52
49
|
files_map = data_hash['RSpec']['coverage']
|
53
|
-
filename_key_list = files_map.keys
|
54
|
-
fileElementArray = []
|
55
50
|
files_map.each do
|
56
51
|
|filename,value|
|
57
52
|
branches = value['branches']
|
58
|
-
|
59
|
-
# puts "branch size: #{branches.keys.size}"
|
60
|
-
# end
|
61
|
-
lineToCoverArray = []
|
53
|
+
line_to_cover_array = []
|
62
54
|
unless branches.keys.size == 0
|
63
55
|
branches.each do
|
64
|
-
|branch,
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
notCovered = findNotCoveredBranches condtionsMap
|
71
|
-
covered = condtionsMap.keys.size-notCovered
|
72
|
-
lineToCoverElement = {lineNumber:lineNumber , covered: condtionsMap.keys.size == covered , branchesToCover: condtionsMap.keys.size, coveredBranches:condtionsMap.keys.size-notCovered}
|
73
|
-
# if filename == '/Users/mfv-computer-0090/projects/tax_adjustment_web/lib/pa_api/abstract_client.rb'
|
74
|
-
# puts "LineElement prepared: #{lineToCoverElement}"
|
75
|
-
# end
|
76
|
-
index = checkIfLineAlreadyPresent lineNumber, lineToCoverArray
|
56
|
+
|branch, condtions_map|
|
57
|
+
line_number = branch.split(',')[2].strip
|
58
|
+
not_covered = find_notcovered_branches condtions_map
|
59
|
+
covered = condtions_map.keys.size-not_covered
|
60
|
+
line_tocover_element = {lineNumber:line_number , covered: covered > 0 , branchesToCover: condtions_map.keys.size, coveredBranches:covered}
|
61
|
+
index = check_for_duplicate_line line_number, line_to_cover_array
|
77
62
|
if index != -1
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
63
|
+
old_line_tocover_element = line_to_cover_array[index]
|
64
|
+
old_line_tocover_element[:branchesToCover] = old_line_tocover_element[:branchesToCover] + line_tocover_element[:branchesToCover]
|
65
|
+
old_line_tocover_element[:coveredBranches] = old_line_tocover_element[:coveredBranches] + line_tocover_element[:coveredBranches]
|
66
|
+
old_line_tocover_element[:covered] = old_line_tocover_element[:covered] && line_tocover_element[:covered]
|
67
|
+
line_to_cover_array[index] = old_line_tocover_element
|
83
68
|
else
|
84
|
-
|
69
|
+
line_to_cover_array.push(line_tocover_element)
|
85
70
|
end
|
86
71
|
end
|
87
|
-
|
88
|
-
|
72
|
+
file_element = {path: filename, lineElements: line_to_cover_array}
|
73
|
+
file_elements.push(file_element)
|
89
74
|
end
|
90
75
|
end
|
91
76
|
|
92
77
|
xml = Builder::XmlMarkup.new(:target => @output, :indent => 2)
|
93
|
-
|
94
|
-
|
78
|
+
puts "Total Files: #{file_elements.size}"
|
79
|
+
prepare_xml_builder xml, file_elements
|
80
|
+
File.write("coverage/branch-coverage.xml", xml.to_xml)
|
81
|
+
if file_elements.size > 0
|
82
|
+
return true
|
83
|
+
else
|
84
|
+
return false
|
85
|
+
end
|
86
|
+
else
|
87
|
+
xml = Builder::XmlMarkup.new(:target => @output, :indent => 2)
|
88
|
+
puts "Total Files: #{file_elements.size}"
|
89
|
+
prepare_xml_builder xml, file_elements
|
90
|
+
File.write("coverage/branch-coverage.xml", xml.to_xml)
|
91
|
+
return false
|
95
92
|
end
|
93
|
+
|
96
94
|
end
|
97
95
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: branchcov-xmlruby-sonar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Suganya
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A program to convert json to xml test coverage foramt gem
|
14
14
|
email: ''
|