unity_test_results 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fc4eaccad51c265b10871c6aa10cf083a79c2c44
4
+ data.tar.gz: a71f1bc238c0b567b8133818fcd516c0f8661690
5
+ SHA512:
6
+ metadata.gz: 4c572f37070f1daa3561a6324c012ff523b1a693210498209545678b6deeb705772302fc983ec0199c46c9105bce38261eb018a06511183bb7b8c33474d650ee
7
+ data.tar.gz: 4a2bfb93dce9c7f0c93d256eabb24999e49d4d8224ab1a501143590c84011ab47fe76af33566b5188e9a9f4463e8b636fa1bcdb5122e552ef111a05d4a9f8ec8
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.idea/.rakeTasks ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build unity_test_results-0.1.0.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Remove any temporary products" fullCmd="clean" taksId="clean" /><RakeTask description="Remove any generated files" fullCmd="clobber" taksId="clobber" /><RakeTask description="Build and install unity_test_results-0.1.0.gem into system gems" fullCmd="install" taksId="install" /><RakeGroup description="" fullCmd="" taksId="install"><RakeTask description="Build and install unity_test_results-0.1.0.gem into system gems without network access" fullCmd="install:local" taksId="local" /></RakeGroup><RakeTask description="Create tag v0.1.0 and build and push unity_test_results-0.1.0.gem to rubygems.org" fullCmd="release[remote]" taksId="release[remote]" /><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="" fullCmd="default" taksId="default" /><RakeTask description="" fullCmd="release" taksId="release" /><RakeGroup description="" fullCmd="" taksId="release"><RakeTask description="" fullCmd="release:guard_clean" taksId="guard_clean" /><RakeTask description="" fullCmd="release:rubygem_push" taksId="rubygem_push" /><RakeTask description="" fullCmd="release:source_control_push" taksId="source_control_push" /></RakeGroup></RakeGroup></Settings>
data/.idea/misc.xml ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptSettings">
4
+ <option name="languageLevel" value="ES6" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.4.1 [pepe]" project-jdk-type="RUBY_SDK" />
7
+ </project>
data/.idea/modules.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/unity_test_results.iml" filepath="$PROJECT_DIR$/.idea/unity_test_results.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared />
5
+ </component>
6
+ <component name="NewModuleRootManager">
7
+ <content url="file://$MODULE_DIR$" />
8
+ <orderEntry type="jdk" jdkName="RVM: ruby-2.4.1" jdkType="RUBY_SDK" />
9
+ <orderEntry type="sourceFolder" forTests="false" />
10
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.17.3, RVM: ruby-2.4.1) [gem]" level="application" />
11
+ <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, RVM: ruby-2.4.1) [gem]" level="application" />
12
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, RVM: ruby-2.4.1) [gem]" level="application" />
13
+ <orderEntry type="library" scope="PROVIDED" name="hashie (v3.6.0, RVM: ruby-2.4.1) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.4.0, RVM: ruby-2.4.1) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.10.1, RVM: ruby-2.4.1) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, RVM: ruby-2.4.1) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="rspec (v3.8.0, RVM: ruby-2.4.1) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.8.0, RVM: ruby-2.4.1) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.8.3, RVM: ruby-2.4.1) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.8.0, RVM: ruby-2.4.1) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.8.0, RVM: ruby-2.4.1) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="xml-simple (v1.1.5, RVM: ruby-2.4.1) [gem]" level="application" />
23
+ </component>
24
+ </module>
data/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,240 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="fa113f97-d28e-41e0-9984-c8d0dcc3471d" name="Default Changelist" comment="">
5
+ <change beforePath="$PROJECT_DIR$/unity_test_results.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/unity_test_results.gemspec" afterDir="false" />
6
+ </list>
7
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="FileEditorManager">
14
+ <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
15
+ <file pinned="false" current-in-tab="true">
16
+ <entry file="file://$PROJECT_DIR$/unity_test_results.gemspec">
17
+ <provider selected="true" editor-type-id="text-editor">
18
+ <state relative-caret-position="135">
19
+ <caret line="9" column="52" selection-start-line="9" selection-start-column="52" selection-end-line="9" selection-end-column="52" />
20
+ </state>
21
+ </provider>
22
+ </entry>
23
+ </file>
24
+ <file pinned="false" current-in-tab="false">
25
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results.rb">
26
+ <provider selected="true" editor-type-id="text-editor">
27
+ <state relative-caret-position="270">
28
+ <caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
29
+ </state>
30
+ </provider>
31
+ </entry>
32
+ </file>
33
+ <file pinned="false" current-in-tab="false">
34
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/class_object.rb">
35
+ <provider selected="true" editor-type-id="text-editor">
36
+ <state relative-caret-position="495">
37
+ <caret line="33" lean-forward="true" selection-start-line="33" selection-end-line="33" />
38
+ </state>
39
+ </provider>
40
+ </entry>
41
+ </file>
42
+ <file pinned="false" current-in-tab="false">
43
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/namespace.rb">
44
+ <provider selected="true" editor-type-id="text-editor">
45
+ <state relative-caret-position="525">
46
+ <caret line="35" lean-forward="true" selection-start-line="35" selection-end-line="35" />
47
+ </state>
48
+ </provider>
49
+ </entry>
50
+ </file>
51
+ <file pinned="false" current-in-tab="false">
52
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/version.rb">
53
+ <provider selected="true" editor-type-id="text-editor" />
54
+ </entry>
55
+ </file>
56
+ <file pinned="false" current-in-tab="false">
57
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/test_result.rb">
58
+ <provider selected="true" editor-type-id="text-editor">
59
+ <state relative-caret-position="795">
60
+ <caret line="53" column="17" lean-forward="true" selection-start-line="53" selection-start-column="17" selection-end-line="53" selection-end-column="17" />
61
+ </state>
62
+ </provider>
63
+ </entry>
64
+ </file>
65
+ <file pinned="false" current-in-tab="false">
66
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/xsl/test_results_xsl.xml">
67
+ <provider selected="true" editor-type-id="text-editor" />
68
+ </entry>
69
+ </file>
70
+ </leaf>
71
+ </component>
72
+ <component name="Git.Settings">
73
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
74
+ </component>
75
+ <component name="IdeDocumentHistory">
76
+ <option name="CHANGED_PATHS">
77
+ <list>
78
+ <option value="$PROJECT_DIR$/lib/unity_test_results/test_parser_service.rb" />
79
+ <option value="$PROJECT_DIR$/lib/unity_test_results/domain/class.rb" />
80
+ <option value="$PROJECT_DIR$/lib/unity_test_results.rb" />
81
+ <option value="$PROJECT_DIR$/lib/unity_test_results/domain/class_object.rb" />
82
+ <option value="$PROJECT_DIR$/lib/unity_test_results/domain/namespace.rb" />
83
+ <option value="$PROJECT_DIR$/lib/unity_test_results/domain/test_result.rb" />
84
+ <option value="$PROJECT_DIR$/unity_test_results.gemspec" />
85
+ </list>
86
+ </option>
87
+ </component>
88
+ <component name="ProjectConfigurationFiles">
89
+ <option name="files">
90
+ <list>
91
+ <option value="$PROJECT_DIR$/.idea/unity_test_results.iml" />
92
+ <option value="$PROJECT_DIR$/.idea/misc.xml" />
93
+ <option value="$PROJECT_DIR$/.idea/vcs.xml" />
94
+ <option value="$PROJECT_DIR$/.idea/modules.xml" />
95
+ </list>
96
+ </option>
97
+ </component>
98
+ <component name="ProjectFrameBounds" extendedState="6">
99
+ <option name="y" value="23" />
100
+ <option name="width" value="1680" />
101
+ <option name="height" value="1027" />
102
+ </component>
103
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
104
+ <component name="ProjectView">
105
+ <navigator proportions="" version="1">
106
+ <foldersAlwaysOnTop value="true" />
107
+ </navigator>
108
+ <panes>
109
+ <pane id="Scope" />
110
+ <pane id="ProjectPane">
111
+ <subPane>
112
+ <expand>
113
+ <path>
114
+ <item name="unity_test_results" type="b2602c69:ProjectViewProjectNode" />
115
+ <item name="unity_test_results" type="462c0819:PsiDirectoryNode" />
116
+ </path>
117
+ </expand>
118
+ <select />
119
+ </subPane>
120
+ </pane>
121
+ </panes>
122
+ </component>
123
+ <component name="PropertiesComponent">
124
+ <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
125
+ <property name="WebServerToolWindowFactoryState" value="false" />
126
+ <property name="node.js.detected.package.eslint" value="true" />
127
+ <property name="node.js.path.for.package.eslint" value="project" />
128
+ <property name="node.js.selected.package.eslint" value="(autodetect)" />
129
+ <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
130
+ <property name="nodejs_npm_path_reset_for_default_project" value="true" />
131
+ </component>
132
+ <component name="RecentsManager">
133
+ <key name="MoveFile.RECENT_KEYS">
134
+ <recent name="$PROJECT_DIR$/lib/unity_test_results" />
135
+ </key>
136
+ </component>
137
+ <component name="RunDashboard">
138
+ <option name="ruleStates">
139
+ <list>
140
+ <RuleState>
141
+ <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
142
+ </RuleState>
143
+ <RuleState>
144
+ <option name="name" value="StatusDashboardGroupingRule" />
145
+ </RuleState>
146
+ </list>
147
+ </option>
148
+ </component>
149
+ <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" />
150
+ <component name="SvnConfiguration">
151
+ <configuration />
152
+ </component>
153
+ <component name="TaskManager">
154
+ <task active="true" id="Default" summary="Default task">
155
+ <changelist id="fa113f97-d28e-41e0-9984-c8d0dcc3471d" name="Default Changelist" comment="" />
156
+ <created>1555890200790</created>
157
+ <option name="number" value="Default" />
158
+ <option name="presentableId" value="Default" />
159
+ <updated>1555890200790</updated>
160
+ <workItem from="1555890203001" duration="1587000" />
161
+ <workItem from="1555893107461" duration="3915000" />
162
+ </task>
163
+ <servers />
164
+ </component>
165
+ <component name="TimeTrackingManager">
166
+ <option name="totallyTimeSpent" value="5502000" />
167
+ </component>
168
+ <component name="ToolWindowManager">
169
+ <frame x="0" y="23" width="1680" height="1027" extended-state="6" />
170
+ <editor active="true" />
171
+ <layout>
172
+ <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18009768" />
173
+ <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
174
+ <window_info id="Favorites" order="2" side_tool="true" />
175
+ <window_info anchor="bottom" id="Message" order="0" />
176
+ <window_info anchor="bottom" id="Find" order="1" weight="0.32941177" />
177
+ <window_info anchor="bottom" id="Run" order="2" weight="0.32941177" />
178
+ <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
179
+ <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
180
+ <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
181
+ <window_info anchor="bottom" id="TODO" order="6" />
182
+ <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
183
+ <window_info anchor="bottom" id="Database Changes" order="8" />
184
+ <window_info anchor="bottom" id="Version Control" order="9" />
185
+ <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
186
+ <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
187
+ <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
188
+ <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
189
+ <window_info anchor="right" id="Database" order="3" />
190
+ <window_info active="true" anchor="right" id="Terminal" order="4" visible="true" weight="0.3870574" />
191
+ </layout>
192
+ </component>
193
+ <component name="TypeScriptGeneratedFilesManager">
194
+ <option name="version" value="1" />
195
+ </component>
196
+ <component name="editorHistoryManager">
197
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/test_parser_service.rb" />
198
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/xsl/test_results_xsl.xml">
199
+ <provider selected="true" editor-type-id="text-editor" />
200
+ </entry>
201
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/class_object.rb">
202
+ <provider selected="true" editor-type-id="text-editor">
203
+ <state relative-caret-position="495">
204
+ <caret line="33" lean-forward="true" selection-start-line="33" selection-end-line="33" />
205
+ </state>
206
+ </provider>
207
+ </entry>
208
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/test_result.rb">
209
+ <provider selected="true" editor-type-id="text-editor">
210
+ <state relative-caret-position="795">
211
+ <caret line="53" column="17" lean-forward="true" selection-start-line="53" selection-start-column="17" selection-end-line="53" selection-end-column="17" />
212
+ </state>
213
+ </provider>
214
+ </entry>
215
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/domain/namespace.rb">
216
+ <provider selected="true" editor-type-id="text-editor">
217
+ <state relative-caret-position="525">
218
+ <caret line="35" lean-forward="true" selection-start-line="35" selection-end-line="35" />
219
+ </state>
220
+ </provider>
221
+ </entry>
222
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results/version.rb">
223
+ <provider selected="true" editor-type-id="text-editor" />
224
+ </entry>
225
+ <entry file="file://$PROJECT_DIR$/lib/unity_test_results.rb">
226
+ <provider selected="true" editor-type-id="text-editor">
227
+ <state relative-caret-position="270">
228
+ <caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
229
+ </state>
230
+ </provider>
231
+ </entry>
232
+ <entry file="file://$PROJECT_DIR$/unity_test_results.gemspec">
233
+ <provider selected="true" editor-type-id="text-editor">
234
+ <state relative-caret-position="135">
235
+ <caret line="9" column="52" selection-start-line="9" selection-start-column="52" selection-end-line="9" selection-end-column="52" />
236
+ </state>
237
+ </provider>
238
+ </entry>
239
+ </component>
240
+ </project>
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.4.1
7
+ before_install: gem install bundler -v 1.17.3
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in unity_test_results.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ unity_test_results (0.1.0)
5
+ colorize (= 0.8.1)
6
+ hashie (= 3.6.0)
7
+ nokogiri (= 1.10.1)
8
+ xml-simple (= 1.1.5)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ colorize (0.8.1)
14
+ diff-lcs (1.3)
15
+ hashie (3.6.0)
16
+ mini_portile2 (2.4.0)
17
+ nokogiri (1.10.1)
18
+ mini_portile2 (~> 2.4.0)
19
+ rake (10.5.0)
20
+ rspec (3.8.0)
21
+ rspec-core (~> 3.8.0)
22
+ rspec-expectations (~> 3.8.0)
23
+ rspec-mocks (~> 3.8.0)
24
+ rspec-core (3.8.0)
25
+ rspec-support (~> 3.8.0)
26
+ rspec-expectations (3.8.3)
27
+ diff-lcs (>= 1.2.0, < 2.0)
28
+ rspec-support (~> 3.8.0)
29
+ rspec-mocks (3.8.0)
30
+ diff-lcs (>= 1.2.0, < 2.0)
31
+ rspec-support (~> 3.8.0)
32
+ rspec-support (3.8.0)
33
+ xml-simple (1.1.5)
34
+
35
+ PLATFORMS
36
+ ruby
37
+
38
+ DEPENDENCIES
39
+ bundler (~> 1.17)
40
+ rake (~> 10.0)
41
+ rspec (~> 3.0)
42
+ unity_test_results!
43
+
44
+ BUNDLED WITH
45
+ 1.17.3
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # UnityTestResults
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/unity_test_results`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'unity_test_results'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install unity_test_results
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/unity_test_results.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "unity_test_results"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,42 @@
1
+ require 'colorize'
2
+
3
+ module UnityTestResults
4
+ class ClassObject
5
+ CHECKMARK = "\u2705".freeze
6
+ CROSSMARK = "\u274c".freeze
7
+ INCONCLUSIVEMARK = "\u00B7".freeze
8
+ FOLDER = "\u2192".freeze
9
+ ARROW = "\u2192".freeze
10
+
11
+ def initialize(name)
12
+ @name = name
13
+ @test_results = []
14
+ end
15
+
16
+ def add(test_result)
17
+ @test_results << test_result
18
+ end
19
+
20
+ def output_result(indent)
21
+ puts "#{indent} #{ARROW} #{@name}".colorize(test_color)
22
+ @test_results.each {|r| r.output_result("#{indent} ")}
23
+ end
24
+
25
+ def failing_test?
26
+ @test_results.any?(&:failed?)
27
+ end
28
+
29
+ def get_mark
30
+ return CROSSMARK if failing_test?
31
+
32
+ CHECKMARK
33
+ end
34
+
35
+ def test_color
36
+ return :red if failing_test?
37
+ return :green unless failing_test?
38
+ end
39
+
40
+ attr_reader :test_results
41
+ end
42
+ end
@@ -0,0 +1,62 @@
1
+ require_relative './class_object'
2
+ require 'colorize'
3
+
4
+ module UnityTestResults
5
+ class Namespace
6
+ attr_reader :name
7
+ CHECKMARK = "\u2705".freeze
8
+ CROSSMARK = "\u274c".freeze
9
+ INCONCLUSIVEMARK = "\u00B7".freeze
10
+ FOLDER = "\u2192".freeze
11
+ ARROW = "\u21b3".freeze
12
+
13
+ def initialize(name)
14
+ @name = name
15
+ @namespaces = {}
16
+ @classes = {}
17
+ end
18
+
19
+ def add_namespace(namespaces_list, test_result)
20
+ if namespaces_list.empty?
21
+ classname = test_result.classname
22
+ @classes[:"#{classname}"] = ClassObject.new(classname) unless @classes.key?(:"#{classname}")
23
+ @classes[:"#{classname}"].add(test_result)
24
+ return
25
+ end
26
+
27
+ next_namespace = namespaces_list[0]
28
+ if @namespaces.key?(next_namespace)
29
+ else
30
+ @namespaces[next_namespace] = Namespace.new(next_namespace)
31
+ end
32
+
33
+ namespaces_list.shift
34
+ @namespaces[next_namespace].add_namespace(namespaces_list, test_result)
35
+ end
36
+
37
+ def failing_test?
38
+ return @namespaces.any? {|_key, value| value.failing_test?} unless @namespaces.empty?
39
+
40
+ @classes.any? {|_key, value| value.failing_test?}
41
+ end
42
+
43
+ def show_test_results(indent)
44
+ puts "#{indent} #{ARROW} #{@name}".colorize(test_color)
45
+ @classes.each_value {|c| c.output_result("#{indent} ")}
46
+ @namespaces.each_value {|n| n.show_test_results("#{indent} ")}
47
+ end
48
+
49
+ def get_mark
50
+ return CROSSMARK if failing_test?
51
+
52
+ CHECKMARK
53
+ end
54
+
55
+ def test_color
56
+ return :red if failing_test?
57
+ return :green unless failing_test?
58
+ end
59
+
60
+ attr_reader :classes
61
+ end
62
+ end
@@ -0,0 +1,57 @@
1
+ require 'colorize'
2
+
3
+ module UnityTestResults
4
+ class TestResult
5
+ CHECKMARK = "\u2705".freeze
6
+ CROSSMARK = "\u274c".freeze
7
+ INCONCLUSIVEMARK = "\u00B7".freeze
8
+ FOLDER = "\u2192".freeze
9
+
10
+ def initialize(hash_value)
11
+ @methodname = hash_value[:methodname]
12
+ @classname = classname_from(hash_value[:classname])
13
+ @namespace = namespace_from(hash_value[:classname])
14
+ @result = hash_value[:result]
15
+ @start_time = hash_value[:'start-time']
16
+ @end_time = hash_value[:'end-time']
17
+ @duration = hash_value[:duration]
18
+ @failure = hash_value[:failure]
19
+ end
20
+
21
+ attr_reader :namespace, :classname
22
+
23
+ def output_result(indent)
24
+ puts "#{indent} #{get_mark} #{@methodname} result: #{@result} duration: #{@duration}".colorize(test_color)
25
+ puts "#{indent} #{@failure}".colorize(test_color) unless @failure.empty?
26
+ end
27
+
28
+ def test_color
29
+ return :red if failed?
30
+ return :green if passed?
31
+ end
32
+
33
+ def get_mark
34
+ return CROSSMARK if failed?
35
+
36
+ CHECKMARK
37
+ end
38
+
39
+ def classname_from(fullname)
40
+ fullname.split('.').last
41
+ end
42
+
43
+ def passed?
44
+ @result == 'Passed'
45
+ end
46
+
47
+ def failed?
48
+ @result == 'Failed'
49
+ end
50
+
51
+ def namespace_from(fullname)
52
+ a = fullname.split('.')
53
+ a.pop
54
+ a.join('.')
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,3 @@
1
+ module UnityTestResults
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+ <xsl:output method="xml" indent="yes"/>
4
+
5
+ <xsl:template match="*">
6
+ <root>
7
+ <xsl:for-each select="//*">
8
+ <xsl:choose>
9
+ <xsl:when test="self::test-case">
10
+ <tests>
11
+ <xsl:attribute name="methodname">
12
+ <xsl:value-of select="@methodname"/>
13
+ </xsl:attribute>
14
+ <xsl:attribute name="classname">
15
+ <xsl:value-of select="@classname"/>
16
+ </xsl:attribute>
17
+ <xsl:attribute name="result">
18
+ <xsl:value-of select="@result"/>
19
+ </xsl:attribute>
20
+ <xsl:attribute name="start-time">
21
+ <xsl:value-of select="@start-time"/>
22
+ </xsl:attribute>
23
+ <xsl:attribute name="end-time">
24
+ <xsl:value-of select="@end-time"/>
25
+ </xsl:attribute>
26
+ <xsl:attribute name="duration">
27
+ <xsl:value-of select="@duration"/>
28
+ </xsl:attribute>
29
+ <xsl:attribute name="failure">
30
+ <xsl:value-of select="failure/stack-trace"/>
31
+ </xsl:attribute>
32
+ </tests>
33
+ </xsl:when>
34
+ </xsl:choose>
35
+ </xsl:for-each>
36
+ </root>
37
+ </xsl:template>
38
+ </xsl:stylesheet>
@@ -0,0 +1,105 @@
1
+ require 'nokogiri'
2
+ require 'colorize'
3
+ require 'xmlsimple'
4
+ require_relative './unity_test_results/domain/test_result'
5
+ require_relative './unity_test_results/domain/namespace'
6
+ require_relative './unity_test_results/domain/class_object'
7
+
8
+ module UnityTestResults
9
+ class TestParserService
10
+ CHECKMARK = "\u2705".freeze
11
+ CROSSMARK = "\u274c".freeze
12
+ INCONCLUSIVEMARK = "\u00B7".freeze
13
+ FOLDER = "\u2192".freeze
14
+
15
+ SUCCEED_COLOR = { color: :light_green }.freeze
16
+ FAILED_COLOR = { color: :red }.freeze
17
+ INCONCLUSIVE_COLOR = :yellow
18
+ ERROR_COLOR = :red
19
+
20
+ CLASS_INDENT = ' '.freeze
21
+ TEST_INDENT = ' '.freeze
22
+
23
+ def initialize(xml_path, xsl_path)
24
+ xml_doc = create_xml_document_from(xml_path)
25
+ xslt = create_xslt_file_from(xsl_path)
26
+ transformed_xml = transform_xml_with_xsl(xml_doc, xslt)
27
+ hashed_xml = xml_to_hash(transformed_xml)
28
+ puts "\n NO TESTS FOUND \n".colorize(SUCCEED_COLOR) if hashed_xml.empty?
29
+ create_test_results(hashed_xml) unless hashed_xml.empty?
30
+ end
31
+
32
+ def create_xml_document_from(results_path)
33
+ result = File.open(results_path)
34
+ xml = Nokogiri::XML(result)
35
+ xml
36
+ end
37
+
38
+ def deep_sybolize_keys(value = self)
39
+ case value
40
+ when Array
41
+ value.map { |v| deep_sybolize_keys(v) }
42
+ when Hash
43
+ symbolize_hash(value)
44
+ else
45
+ value
46
+ end
47
+ end
48
+
49
+ def symbolize_hash(value)
50
+ Hash[value.map { |k, v| [k.to_sym, deep_sybolize_keys(v)] }]
51
+ end
52
+
53
+ def create_xslt_file_from(xslt_path)
54
+ Nokogiri::XSLT(File.read(xslt_path))
55
+ end
56
+
57
+ def transform_xml_with_xsl(xml, xslt)
58
+ xslt.transform(xml).to_s
59
+ end
60
+
61
+ def xml_to_hash(xml)
62
+ hash = XmlSimple.xml_in(xml)
63
+ symbolize_hash(hash)
64
+ end
65
+
66
+ def test_mark(succeed)
67
+ return CHECKMARK if succeed
68
+ return CROSSMARK unless succeed
69
+
70
+ INCONCLUSIVEMARK
71
+ end
72
+
73
+ def test_color(succeed)
74
+ return SUCCEED_COLOR if succeed
75
+ return FAILED_COLOR unless succeed
76
+
77
+ :yellow
78
+ end
79
+
80
+ def create_test_results(hashed_xml)
81
+ tests = hashed_xml[:tests]
82
+ test_results = tests.map { |value| TestResult.new(value) }
83
+ final_results = {}
84
+
85
+ test_results.each do |result|
86
+ root = result.namespace.split('.')
87
+ root_name = root[0]
88
+ unless final_results.key?(root[0])
89
+ namespace = Namespace.new(root[0])
90
+ final_results[root_name] = namespace
91
+ end
92
+ root.shift
93
+ final_results[root_name].add_namespace(root, result)
94
+ # p final_results
95
+ end
96
+
97
+ puts '--------------------------------------------------------------'.colorize(:yellow)
98
+
99
+ final_results.each do |_k, namespace|
100
+ namespace.show_test_results('')
101
+ end
102
+ end
103
+ end
104
+
105
+ end
@@ -0,0 +1,30 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "unity_test_results/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "unity_test_results"
8
+ spec.version = UnityTestResults::VERSION
9
+ spec.authors = ["Martin Gonzalez"]
10
+ spec.email = ["gonzalez.martin90@gmail.com"]
11
+
12
+ spec.summary = %q{This gem will output pretty the test results you insert.}
13
+ spec.description = %q{This gem will output pretty the test results you insert.}
14
+
15
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
16
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ end
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_runtime_dependency 'colorize', '0.8.1'
23
+ spec.add_runtime_dependency 'hashie', '3.6.0'
24
+ spec.add_runtime_dependency 'nokogiri', '1.10.1'
25
+ spec.add_runtime_dependency 'xml-simple', '1.1.5'
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.17"
28
+ spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rspec", "~> 3.0"
30
+ end
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unity_test_results
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Martin Gonzalez
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-04-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: hashie
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.6.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.10.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.10.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: xml-simple
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.5
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.5
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.17'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.17'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ description: This gem will output pretty the test results you insert.
112
+ email:
113
+ - gonzalez.martin90@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".idea/.rakeTasks"
120
+ - ".idea/misc.xml"
121
+ - ".idea/modules.xml"
122
+ - ".idea/unity_test_results.iml"
123
+ - ".idea/vcs.xml"
124
+ - ".idea/workspace.xml"
125
+ - ".rspec"
126
+ - ".travis.yml"
127
+ - Gemfile
128
+ - Gemfile.lock
129
+ - README.md
130
+ - Rakefile
131
+ - bin/console
132
+ - bin/setup
133
+ - lib/unity_test_results.rb
134
+ - lib/unity_test_results/domain/class_object.rb
135
+ - lib/unity_test_results/domain/namespace.rb
136
+ - lib/unity_test_results/domain/test_result.rb
137
+ - lib/unity_test_results/version.rb
138
+ - lib/unity_test_results/xsl/test_results_xsl.xml
139
+ - unity_test_results.gemspec
140
+ homepage:
141
+ licenses: []
142
+ metadata: {}
143
+ post_install_message:
144
+ rdoc_options: []
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ requirements: []
158
+ rubyforge_project:
159
+ rubygems_version: 2.6.14
160
+ signing_key:
161
+ specification_version: 4
162
+ summary: This gem will output pretty the test results you insert.
163
+ test_files: []