tuneup-plist-to-junit 0.0.1 → 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/README.md +1 -0
- data/bin/tuneup_plist_to_junit_parser +7 -2
- data/lib/TuneUpPlistToJunit/version.rb +1 -1
- data/lib/tuneup_plist_to_junit_utils.rb +9 -7
- data/test/expected_outputs/all.xml +12 -12
- data/test/expected_outputs/single_fail_with_children.xml +1 -1
- data/test/expected_outputs/single_passing.xml +1 -1
- data/test/tuneup_plist_to_junit_utils_spec.rb +5 -5
- data/tuneup-plist-to-junit.gemspec +3 -3
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fda575e2ef3f1a5b7978392523dc5b4c23b6ee5
|
4
|
+
data.tar.gz: 65ccf833cae8797e43adc8fad194c88de731fd85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a87b7e0a1e18b1049ab1e653ed84bbebf357a902820c209b626b27a6fef75f4725dd8e65671041bb48a45c0aa14bc3918c5f775d16604f8ece93df65e44cd21f
|
7
|
+
data.tar.gz: 759876c1cf3da45e652bfa29d465d72184515242a3c84f7629de4990787dd40343feb56ceb96c0980876f014a6124e4c87a564d07b2544b03dbe20bc82307369
|
data/README.md
CHANGED
@@ -34,6 +34,7 @@ To use, simply use
|
|
34
34
|
Specific options:
|
35
35
|
-i, --input FILE UIAutomation plist generated with TuneupJS. Default: Automation Results.plist
|
36
36
|
-o, --output FILE Output location of JUnit test report. Default: test_report.xml
|
37
|
+
-c, --class-name CLASSNAME The class name to use on the test case. Default: UIAutomation
|
37
38
|
|
38
39
|
Common options:
|
39
40
|
-h, --help Show this message
|
@@ -11,9 +11,10 @@ require_relative '../lib/tuneup_plist_to_junit_utils'
|
|
11
11
|
def parse_command_line_args(args)
|
12
12
|
options = OpenStruct.new
|
13
13
|
|
14
|
-
# Set our default input/output arguments
|
14
|
+
# Set our default input/output and class name arguments
|
15
15
|
options.input = 'Automation Results.plist'
|
16
16
|
options.output = 'test_report.xml'
|
17
|
+
options.class_name = 'UIAutomation'
|
17
18
|
|
18
19
|
# Build our options parser
|
19
20
|
opt_parser = OptionParser.new do |opts|
|
@@ -31,6 +32,10 @@ def parse_command_line_args(args)
|
|
31
32
|
options.output = output
|
32
33
|
end
|
33
34
|
|
35
|
+
opts.on('-c', '--class-name CLASSNAME', 'The class name to use on the test case. Default: UIAutomation') do |output|
|
36
|
+
options.class_name = output
|
37
|
+
end
|
38
|
+
|
34
39
|
opts.separator ''
|
35
40
|
opts.separator 'Common options:'
|
36
41
|
|
@@ -55,6 +60,6 @@ end
|
|
55
60
|
options = parse_command_line_args(ARGV)
|
56
61
|
|
57
62
|
# Convert the plist file to junit xml and write it to our destination
|
58
|
-
junit_report = TuneUpPlistToJunitUtils.new.generate_reports(options.input)
|
63
|
+
junit_report = TuneUpPlistToJunitUtils.new.generate_reports(options.input, options.class_name)
|
59
64
|
File.open(options.output, 'w') { |f| f.write(junit_report) }
|
60
65
|
|
@@ -70,7 +70,7 @@ class TuneUpPlistToJunitUtils
|
|
70
70
|
:timestamp => timestamp,
|
71
71
|
:messages => []}
|
72
72
|
|
73
|
-
|
73
|
+
# In order to add a message to our current test, the message type can't be a begin or end node
|
74
74
|
elsif current_test && log_message_type != END_FAILURE && log_message_type != END_SUCCESS && log_message_type != START_TEST
|
75
75
|
message = log_message_type == SCREENSHOT ? screenshot : message
|
76
76
|
message = "#{message} \nView Dump: \n#{JSON.pretty_generate(children)}\n" if children
|
@@ -79,8 +79,8 @@ class TuneUpPlistToJunitUtils
|
|
79
79
|
:log_message_type => log_message_type,
|
80
80
|
:timestamp => timestamp}
|
81
81
|
|
82
|
-
|
83
|
-
|
82
|
+
# If the current test is present and the message type is an end node, then add the current test to our tests and
|
83
|
+
# reset the current test
|
84
84
|
elsif current_test && (log_message_type == END_FAILURE || log_message_type == END_SUCCESS)
|
85
85
|
current_test[:end_message_type] = log_message_type
|
86
86
|
current_test[:elapsed_time] = timestamp.to_time - current_test[:timestamp].to_time
|
@@ -96,8 +96,9 @@ class TuneUpPlistToJunitUtils
|
|
96
96
|
# the tests can then me transformed into a junit style xml output
|
97
97
|
#
|
98
98
|
# @param tests [Array] array of processed plist tests as generated from (@see #convert_log_messages_to_tests)
|
99
|
+
# @param [String] junit_class_name the class name to append to each <testcase/> tag
|
99
100
|
# @return [String] a junit xml string
|
100
|
-
def generate_junit_report(tests)
|
101
|
+
def generate_junit_report(tests, junit_class_name)
|
101
102
|
# Gather our root <testsuite/> tag information
|
102
103
|
total_tests = tests.size
|
103
104
|
total_errors = tests.reduce(0) { |sum, t| sum + t[:messages].count { |m| m[:log_message_type] == LOG_ERROR } }
|
@@ -111,7 +112,7 @@ class TuneUpPlistToJunitUtils
|
|
111
112
|
xml.testsuite(:tests => total_tests, :errors => total_errors, :failures => total_failures, :timestamp => starting_time, :time => total_time) {
|
112
113
|
# For each of our tests we want to create a <testcase/> tag
|
113
114
|
tests.each do |test|
|
114
|
-
xml.testcase(:name => test[:name], :time => test[:elapsed_time]) {
|
115
|
+
xml.testcase(:name => test[:name], :time => test[:elapsed_time], :classname => junit_class_name) {
|
115
116
|
|
116
117
|
# If the test case ended in a failure, we want to add a <failure/> tag
|
117
118
|
if test[:end_message_type] == END_FAILURE
|
@@ -146,11 +147,12 @@ class TuneUpPlistToJunitUtils
|
|
146
147
|
# Process the plist file and generates a JUnit style xml string
|
147
148
|
#
|
148
149
|
# @param [String] plist_file_or_xml file name or xml of the UIAutomation plist file
|
150
|
+
# @param [String] junit_class_name the class name to append to each <testcase/> tag
|
149
151
|
# @return [String] the JUnit style xml
|
150
|
-
def generate_reports(plist_file_or_xml)
|
152
|
+
def generate_reports(plist_file_or_xml, junit_class_name)
|
151
153
|
log_messages = parse_plist(plist_file_or_xml)
|
152
154
|
tests = convert_log_messages_to_tests(log_messages)
|
153
|
-
generate_junit_report(tests)
|
155
|
+
generate_junit_report(tests, junit_class_name)
|
154
156
|
end
|
155
157
|
|
156
158
|
end
|
@@ -1,32 +1,32 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<testsuite tests="12" errors="3" failures="3" timestamp="2014-03-04T20:36:27+00:00" time="166.0">
|
3
|
-
<testcase name="Holding login button shows the edit url popup" time="14.0">
|
3
|
+
<testcase name="Holding login button shows the edit url popup" time="14.0" classname="UIAutomation">
|
4
4
|
<system-out>target.frontMostApp().mainWindow().buttons()["Login Button"].touchAndHold("5.5")</system-out>
|
5
5
|
<system-out>target.frontMostApp().mainWindow().textViews()[0].touchAndHold("1.1")</system-out>
|
6
6
|
<system-out>target.frontMostApp().editingMenu().elements()["Select All"].tap()</system-out>
|
7
7
|
<system-out>target.frontMostApp().keyboard().typeString("http://vince.poweredbypeanuts.com:3000/api")</system-out>
|
8
8
|
<system-out>target.frontMostApp().mainWindow().buttons()[1].tap()</system-out>
|
9
9
|
</testcase>
|
10
|
-
<testcase name="Login button takes us to the login webview" time="2.0">
|
10
|
+
<testcase name="Login button takes us to the login webview" time="2.0" classname="UIAutomation">
|
11
11
|
<system-out>target.frontMostApp().mainWindow().buttons()["Login Button"].tap()</system-out>
|
12
12
|
</testcase>
|
13
|
-
<testcase name="Searching for provider yeilds only one result" time="3.0">
|
13
|
+
<testcase name="Searching for provider yeilds only one result" time="3.0" classname="UIAutomation">
|
14
14
|
<system-out>target.frontMostApp().mainWindow().scrollViews()[0].webViews()[0].textFields()[0].tap()</system-out>
|
15
15
|
<system-out>target.frontMostApp().keyboard().typeString("DemoDummy")</system-out>
|
16
16
|
</testcase>
|
17
|
-
<testcase name="Tapping the provider link brings us to the demo login page" time="3.0">
|
17
|
+
<testcase name="Tapping the provider link brings us to the demo login page" time="3.0" classname="UIAutomation">
|
18
18
|
<system-out>target.frontMostApp().mainWindow().scrollViews()[0].webViews()[0].links()["DemoDummy"].tap()</system-out>
|
19
19
|
</testcase>
|
20
|
-
<testcase name="Logging in with our dummy user shows the login screen, then inbox" time="8.0">
|
20
|
+
<testcase name="Logging in with our dummy user shows the login screen, then inbox" time="8.0" classname="UIAutomation">
|
21
21
|
<system-out>target.frontMostApp().mainWindow().scrollViews()[0].webViews()[0].textFields()[0].tap()</system-out>
|
22
22
|
<system-out>target.frontMostApp().keyboard().typeString("automated@singlewire.com")</system-out>
|
23
23
|
<system-out>target.frontMostApp().mainWindow().scrollViews()[0].webViews()[0].buttons()["Login"].tap()</system-out>
|
24
24
|
</testcase>
|
25
|
-
<testcase name="Inbox contains no initial rows" time="8.0"/>
|
26
|
-
<testcase name="Clicking on the compose icon starts the loading process. Initial templates show." time="1.0">
|
25
|
+
<testcase name="Inbox contains no initial rows" time="8.0" classname="UIAutomation"/>
|
26
|
+
<testcase name="Clicking on the compose icon starts the loading process. Initial templates show." time="1.0" classname="UIAutomation">
|
27
27
|
<system-out>target.frontMostApp().navigationBar().rightButton().tap()</system-out>
|
28
28
|
</testcase>
|
29
|
-
<testcase name="Clicking on the first template shows the compose screen." time="3.0">
|
29
|
+
<testcase name="Clicking on the first template shows the compose screen." time="3.0" classname="UIAutomation">
|
30
30
|
<failure message="Clicking on the first template shows the compose screen." type="Fail"/>
|
31
31
|
<system-out>target.frontMostApp().mainWindow().tableViews()["Message Templates Table"].cells()[0].tap()</system-out>
|
32
32
|
<error message="AssertionException: "Expected <The following is a test of the Edmonds Community College Mass Notification System. The following is a test of the Edmonds Community College Mass Notification System. If this was an actual emergency, you would receive essential news and information.> but received <An intruder has been spotted on campus>"" type="Error"/>
|
@@ -707,7 +707,7 @@ View Dump:
|
|
707
707
|
<system-out>target.captureRectWithName("{origin:{x:0.00,y:0.00}, size:{height:568.00,width:320.00}}", "Clicking on the first template shows the compose screen.-fail")</system-out>
|
708
708
|
<system-out>3696C5B1-5177-4A8A-8FAD-9D7EEBE4B9C8</system-out>
|
709
709
|
</testcase>
|
710
|
-
<testcase name="Clicking the send button starts the send process. We receive the notification within 10 seconds." time="112.0">
|
710
|
+
<testcase name="Clicking the send button starts the send process. We receive the notification within 10 seconds." time="112.0" classname="UIAutomation">
|
711
711
|
<failure message="Clicking the send button starts the send process. We receive the notification within 10 seconds." type="Fail"/>
|
712
712
|
<system-out>target.frontMostApp().navigationBar().rightButton().tap()</system-out>
|
713
713
|
<error message="AssertionException: "Expected <1> but received <0>"" type="Error"/>
|
@@ -902,7 +902,7 @@ View Dump:
|
|
902
902
|
<system-out>target.captureRectWithName("{origin:{x:0.00,y:0.00}, size:{height:568.00,width:320.00}}", "Clicking the send button starts the send process. We receive the notification within 10 seconds.-fail")</system-out>
|
903
903
|
<system-out>4A226AB2-F15D-4ACF-A508-9B1A1868230B</system-out>
|
904
904
|
</testcase>
|
905
|
-
<testcase name="Deleting the notification removes it from the table view" time="10.0">
|
905
|
+
<testcase name="Deleting the notification removes it from the table view" time="10.0" classname="UIAutomation">
|
906
906
|
<failure message="Deleting the notification removes it from the table view" type="Fail"/>
|
907
907
|
<system-out>Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().mainWindow().tableViews()["Inbox Table"].cells()[0]</system-out>
|
908
908
|
<error message="VerboseError: Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().mainWindow().tableViews()["Inbox Table"].cells()[0]" type="Error"/>
|
@@ -1097,10 +1097,10 @@ View Dump:
|
|
1097
1097
|
<system-out>target.captureRectWithName("{origin:{x:0.00,y:0.00}, size:{height:568.00,width:320.00}}", "Deleting the notification removes it from the table view-fail")</system-out>
|
1098
1098
|
<system-out>119716EC-B426-42CE-B90E-0A4F553254FD</system-out>
|
1099
1099
|
</testcase>
|
1100
|
-
<testcase name="Clicking the menu icon shows the slide out menu with the correct details" time="0.0">
|
1100
|
+
<testcase name="Clicking the menu icon shows the slide out menu with the correct details" time="0.0" classname="UIAutomation">
|
1101
1101
|
<system-out>target.frontMostApp().navigationBar().leftButton().tap()</system-out>
|
1102
1102
|
</testcase>
|
1103
|
-
<testcase name="Clicking the log out button starts the log out process" time="2.0">
|
1103
|
+
<testcase name="Clicking the log out button starts the log out process" time="2.0" classname="UIAutomation">
|
1104
1104
|
<system-out>target.frontMostApp().mainWindow().tableViews()["Menu Table"].cells()["Log Out"].tap()</system-out>
|
1105
1105
|
</testcase>
|
1106
1106
|
</testsuite>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<testsuite tests="1" errors="1" failures="1" timestamp="2014-03-04T20:37:06+00:00" time="3.0">
|
3
|
-
<testcase name="Clicking on the first template shows the compose screen." time="3.0">
|
3
|
+
<testcase name="Clicking on the first template shows the compose screen." time="3.0" classname="UIAutomation">
|
4
4
|
<failure message="Clicking on the first template shows the compose screen." type="Fail"/>
|
5
5
|
<system-out>target.frontMostApp().mainWindow().tableViews()["Message Templates Table"].cells()[0].tap()</system-out>
|
6
6
|
<error message="AssertionException: "Expected <The following is a test of the Edmonds Community College Mass Notification System. The following is a test of the Edmonds Community College Mass Notification System. If this was an actual emergency, you would receive essential news and information.> but received <An intruder has been spotted on campus>"" type="Error"/>
|
@@ -1,4 +1,4 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<testsuite tests="1" errors="0" failures="0" timestamp="2014-03-04T20:36:27+00:00" time="14.0">
|
3
|
-
<testcase name="Holding login button shows the edit url popup" time="14.0"/>
|
3
|
+
<testcase name="Holding login button shows the edit url popup" time="14.0" classname="UIAutomation"/>
|
4
4
|
</testsuite>
|
@@ -3,34 +3,34 @@ require 'tuneup_plist_to_junit_utils'
|
|
3
3
|
describe TuneUpPlistToJunitUtils, '#generate_reports' do
|
4
4
|
it 'generates the correct output for no tests' do
|
5
5
|
utils = TuneUpPlistToJunitUtils.new
|
6
|
-
utils.generate_reports('test/test_plists/no_tests.plist').should eq(File.read('test/expected_outputs/no_tests.xml'))
|
6
|
+
utils.generate_reports('test/test_plists/no_tests.plist', 'UIAutomation').should eq(File.read('test/expected_outputs/no_tests.xml'))
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
describe TuneUpPlistToJunitUtils, '#generate_reports' do
|
11
11
|
it 'generates the correct output for no tests, but with log messages' do
|
12
12
|
utils = TuneUpPlistToJunitUtils.new
|
13
|
-
utils.generate_reports('test/test_plists/no_tests_with_crud.plist').should eq(File.read('test/expected_outputs/no_tests_with_crud.xml'))
|
13
|
+
utils.generate_reports('test/test_plists/no_tests_with_crud.plist', 'UIAutomation').should eq(File.read('test/expected_outputs/no_tests_with_crud.xml'))
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
describe TuneUpPlistToJunitUtils, '#generate_reports' do
|
18
18
|
it 'generates the correct output for a single failure with children' do
|
19
19
|
utils = TuneUpPlistToJunitUtils.new
|
20
|
-
utils.generate_reports('test/test_plists/single_fail_with_children.plist').should eq(File.read('test/expected_outputs/single_fail_with_children.xml'))
|
20
|
+
utils.generate_reports('test/test_plists/single_fail_with_children.plist', 'UIAutomation').should eq(File.read('test/expected_outputs/single_fail_with_children.xml'))
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
describe TuneUpPlistToJunitUtils, '#generate_reports' do
|
25
25
|
it 'generates the correct output for a single passing test' do
|
26
26
|
utils = TuneUpPlistToJunitUtils.new
|
27
|
-
utils.generate_reports('test/test_plists/single_passing.plist').should eq(File.read('test/expected_outputs/single_passing.xml'))
|
27
|
+
utils.generate_reports('test/test_plists/single_passing.plist', 'UIAutomation').should eq(File.read('test/expected_outputs/single_passing.xml'))
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
describe TuneUpPlistToJunitUtils, '#generate_reports' do
|
32
32
|
it 'generates the correct output for a lots of tests with failures/successes' do
|
33
33
|
utils = TuneUpPlistToJunitUtils.new
|
34
|
-
utils.generate_reports('test/test_plists/all.plist').should eq(File.read('test/expected_outputs/all.xml'))
|
34
|
+
utils.generate_reports('test/test_plists/all.plist', 'UIAutomation').should eq(File.read('test/expected_outputs/all.xml'))
|
35
35
|
end
|
36
36
|
end
|
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = TuneUpPlistToJunit::VERSION
|
9
9
|
spec.authors = ['Vincent Pizzo']
|
10
10
|
spec.email = %w(vincent.pizzo@singlewire.com)
|
11
|
-
spec.description = %q{Processes a UIAutomation
|
12
|
-
spec.summary = %q{Processes a UIAutomation
|
13
|
-
spec.homepage = '
|
11
|
+
spec.description = %q{Processes a UIAutomation plist file as generated by TuneupJS into a JUnit XML format so it can be parsed by a CI server such as Jenkins.}
|
12
|
+
spec.summary = %q{Processes a UIAutomation plist file as generated by TuneupJS into a JUnit XML format so it can be properly parsed by a CI server such as Jenkins.}
|
13
|
+
spec.homepage = 'https://github.com/vincentjames501/TuneUpPlistToJunit'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tuneup-plist-to-junit
|
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
|
- Vincent Pizzo
|
@@ -14,74 +14,74 @@ dependencies:
|
|
14
14
|
name: plist
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.6.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.6.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 2.14.1
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 2.14.1
|
83
|
-
description: Processes a UIAutomation
|
84
|
-
|
83
|
+
description: Processes a UIAutomation plist file as generated by TuneupJS into a JUnit
|
84
|
+
XML format so it can be parsed by a CI server such as Jenkins.
|
85
85
|
email:
|
86
86
|
- vincent.pizzo@singlewire.com
|
87
87
|
executables:
|
@@ -89,7 +89,7 @@ executables:
|
|
89
89
|
extensions: []
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
|
-
-
|
92
|
+
- .gitignore
|
93
93
|
- Gemfile
|
94
94
|
- LICENSE.txt
|
95
95
|
- README.md
|
@@ -109,7 +109,7 @@ files:
|
|
109
109
|
- test/test_plists/single_passing.plist
|
110
110
|
- test/tuneup_plist_to_junit_utils_spec.rb
|
111
111
|
- tuneup-plist-to-junit.gemspec
|
112
|
-
homepage:
|
112
|
+
homepage: https://github.com/vincentjames501/TuneUpPlistToJunit
|
113
113
|
licenses:
|
114
114
|
- MIT
|
115
115
|
metadata: {}
|
@@ -119,21 +119,21 @@ require_paths:
|
|
119
119
|
- lib
|
120
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- -
|
127
|
+
- - '>='
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
requirements: []
|
131
131
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.
|
132
|
+
rubygems_version: 2.0.3
|
133
133
|
signing_key:
|
134
134
|
specification_version: 4
|
135
|
-
summary: Processes a UIAutomation
|
136
|
-
format
|
135
|
+
summary: Processes a UIAutomation plist file as generated by TuneupJS into a JUnit
|
136
|
+
XML format so it can be properly parsed by a CI server such as Jenkins.
|
137
137
|
test_files:
|
138
138
|
- test/expected_outputs/all.xml
|
139
139
|
- test/expected_outputs/no_tests.xml
|