unity_test_results 0.1.0

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 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: []