minitest-ci 3.0.3 → 3.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c2729a8517ac10d9febe0425d40fc263a6ec3d6c
4
+ data.tar.gz: 024571f398527def3e6ddcd37618b85c363bd8a6
5
+ SHA512:
6
+ metadata.gz: 28d66efb28c6f0d529d5cb1eabc91c597d2e3d66a46dd10b3908a3f8ac299025fdd0033903919fbdd2b4a82f824e1366afc084505c83dfab422aa6ad2b767542
7
+ data.tar.gz: 6bea3a25b0aeb756e27c51e5b5df7e7ccadb36ddde52a6b7f355375bd39be65361ec9462a1eb4f8a8869897977d4e17c68caef9a6fd21a7f1a1946be2f9de785
@@ -0,0 +1,64 @@
1
+ = minitest-ci
2
+
3
+ {<img src="https://circleci.com/gh/circleci/minitest-ci.svg?style=svg" alt="Circle CI" />}[https://circleci.com/gh/circleci/minitest-ci]
4
+
5
+ * https://github.com/circleci/minitest-ci
6
+
7
+ == DESCRIPTION:
8
+
9
+ Minitest reporter plugin for CircleCI
10
+
11
+ This gem was made possible by YP.com
12
+
13
+ Records test results and generates XML files (for junit hudson plugin
14
+ for example) at the end of the test run.
15
+
16
+ == USAGE:
17
+
18
+ In order to use this gem, add it to your Gemfile:
19
+
20
+ gem "minitest-cli"
21
+
22
+ To make integration with CircleCI easier, make sure you have a ":test" task defined. You can do simply by adding the following to your Rakefile:
23
+
24
+ require 'rake/testtask'
25
+
26
+ Rake::TestTask.new do |t|
27
+ t.pattern = "test/test_*.rb"
28
+ end
29
+
30
+ task :default => :test
31
+
32
+ You should be on your way to continuous testing with Minitest and CircleCI!
33
+
34
+ For more complicated setups, see below.
35
+
36
+ === Custom setup
37
+
38
+ To configure the test output folder, use the "--ci-dir=" option, setting it in
39
+ TESTOPTS. On CircleCI, you might want to use something like this in your
40
+ circle.yml:
41
+
42
+ test:
43
+ override:
44
+ - bundle exec rake test TESTOPTS="--ci-dir=$CIRCLE_TEST_REPORTS/reports":
45
+ parallel: true
46
+ files:
47
+ - test/**/*.rb
48
+
49
+
50
+ **NOTE**: The report directory is cleaned between test runs. To disable:
51
+
52
+ # test/helper.rb
53
+ Minitest::Ci.clean = false
54
+
55
+ # Rakefile (optional, but recommended)
56
+ task :ci_cleanup do
57
+ require 'minitest/ci'
58
+ Minitest::Ci.new.start
59
+ end
60
+ task :test => %w[ci_cleanup test:one test:two]
61
+
62
+ == REQUIREMENTS:
63
+
64
+ * Minitest > version 5
@@ -4,7 +4,7 @@ require 'cgi'
4
4
  module Minitest
5
5
  class Ci
6
6
 
7
- VERSION = '3.0.3'
7
+ VERSION = '3.1.0'
8
8
 
9
9
  class << self
10
10
 
@@ -18,10 +18,12 @@ module Minitest
18
18
  # Clean the report_dir between test runs? (defaults to true)
19
19
 
20
20
  attr_accessor :clean
21
+ attr_accessor :working_dir
21
22
  end
22
23
 
23
24
  self.report_dir = 'test/reports'
24
25
  self.clean = true
26
+ self.working_dir = Dir.pwd
25
27
 
26
28
  attr_accessor :io
27
29
  attr_accessor :options
@@ -52,7 +54,7 @@ module Minitest
52
54
 
53
55
  Dir.chdir report_dir do
54
56
  results.each do |name, resultz|
55
- File.open "TEST-#{CGI.escape(name.to_s)}.xml", "w" do |f|
57
+ File.open "TEST-#{CGI.escape(name.to_s)}.xml"[0, 255], "w" do |f|
56
58
  f.puts generate_results name, resultz
57
59
  end
58
60
  end
@@ -81,6 +83,7 @@ module Minitest
81
83
  end
82
84
  end
83
85
 
86
+ base = self.class.working_dir + '/'
84
87
  xml = []
85
88
 
86
89
  xml << '<?xml version="1.0" encoding="UTF-8"?>'
@@ -88,8 +91,8 @@ module Minitest
88
91
  [total_time, skips, failures, errors, escape(name), assertions, results.count]
89
92
 
90
93
  results.each do |result|
91
- xml << " <testcase time='%6f' name=%p assertions='%s'>" %
92
- [result.time, escape(result.name), result.assertions]
94
+ xml << " <testcase time='%6f' file=%p name=%p assertions='%s'>" %
95
+ [result.time, escape(result.method(result.name).source_location[0].gsub(base, '')), escape(result.name), result.assertions]
93
96
  if failure = result.failure
94
97
  label = failure.result_label.downcase
95
98
 
@@ -102,7 +105,7 @@ module Minitest
102
105
  bt = Minitest::filter_backtrace failure.backtrace
103
106
 
104
107
  xml << " <%s type='%s' message=%s>%s" %
105
- [label, escape(klass), escape(msg).inspect, escape(bt.join("\n"))]
108
+ [label, escape(klass), escape(msg).inspect.gsub('\n', "&#13;&#10;"), escape(bt.join("\n"))]
106
109
  xml << " </%s>" % label
107
110
  end
108
111
  xml << " </testcase>"
metadata CHANGED
@@ -1,151 +1,138 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
5
- prerelease:
4
+ version: 3.1.0
6
5
  platform: ruby
7
6
  authors:
8
- - Brian Henderson
7
+ - bhenderson
8
+ - notnoop
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-09 00:00:00.000000000 Z
12
+ date: 2016-09-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
- - - ! '>='
18
+ - - ">="
20
19
  - !ruby/object:Gem::Version
21
20
  version: 5.0.6
22
- - - ~>
21
+ - - "~>"
23
22
  - !ruby/object:Gem::Version
24
23
  version: '5.0'
25
24
  type: :runtime
26
25
  prerelease: false
27
26
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
27
  requirements:
30
- - - ! '>='
28
+ - - ">="
31
29
  - !ruby/object:Gem::Version
32
30
  version: 5.0.6
33
- - - ~>
31
+ - - "~>"
34
32
  - !ruby/object:Gem::Version
35
33
  version: '5.0'
36
34
  - !ruby/object:Gem::Dependency
37
- name: nokogiri
35
+ name: bundler
38
36
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
37
  requirements:
41
- - - ~>
38
+ - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: 1.5.0
40
+ version: '1.13'
44
41
  type: :development
45
42
  prerelease: false
46
43
  version_requirements: !ruby/object:Gem::Requirement
47
- none: false
48
44
  requirements:
49
- - - ~>
45
+ - - "~>"
50
46
  - !ruby/object:Gem::Version
51
- version: 1.5.0
47
+ version: '1.13'
52
48
  - !ruby/object:Gem::Dependency
53
- name: rdoc
49
+ name: rake
54
50
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
51
  requirements:
57
- - - ! '>='
52
+ - - "~>"
58
53
  - !ruby/object:Gem::Version
59
- version: 2.4.2
54
+ version: 11.1.2
60
55
  type: :development
61
56
  prerelease: false
62
57
  version_requirements: !ruby/object:Gem::Requirement
63
- none: false
64
58
  requirements:
65
- - - ! '>='
59
+ - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: 2.4.2
61
+ version: 11.1.2
68
62
  - !ruby/object:Gem::Dependency
69
- name: ZenTest
63
+ name: nokogiri
70
64
  requirement: !ruby/object:Gem::Requirement
71
- none: false
72
65
  requirements:
73
- - - ! '>='
66
+ - - "~>"
74
67
  - !ruby/object:Gem::Version
75
- version: '0'
68
+ version: 1.5.0
76
69
  type: :development
77
70
  prerelease: false
78
71
  version_requirements: !ruby/object:Gem::Requirement
79
- none: false
80
72
  requirements:
81
- - - ! '>='
73
+ - - "~>"
82
74
  - !ruby/object:Gem::Version
83
- version: '0'
75
+ version: 1.5.0
76
+ - !ruby/object:Gem::Dependency
77
+ name: rdoc
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.4.2
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.4.2
84
90
  - !ruby/object:Gem::Dependency
85
- name: hoe
91
+ name: ZenTest
86
92
  requirement: !ruby/object:Gem::Requirement
87
- none: false
88
93
  requirements:
89
- - - ~>
94
+ - - ">="
90
95
  - !ruby/object:Gem::Version
91
- version: '3.5'
96
+ version: '0'
92
97
  type: :development
93
98
  prerelease: false
94
99
  version_requirements: !ruby/object:Gem::Requirement
95
- none: false
96
100
  requirements:
97
- - - ~>
101
+ - - ">="
98
102
  - !ruby/object:Gem::Version
99
- version: '3.5'
100
- description: ! 'CI reporter plugin for Minitest
101
-
102
-
103
- This gem was made possible by YP.com'
103
+ version: '0'
104
+ description: Minitest Junit XML results that CircleCI can read.
104
105
  email:
105
- - bhenderson@attinteractive.com
106
+ - sayhi@circleci.com
106
107
  executables: []
107
108
  extensions: []
108
- extra_rdoc_files:
109
- - History.txt
110
- - Manifest.txt
111
- - README.txt
109
+ extra_rdoc_files: []
112
110
  files:
113
- - .autotest
114
- - History.txt
115
- - Isolate
116
- - Manifest.txt
117
- - README.txt
118
- - Rakefile
111
+ - README.rdoc
119
112
  - lib/autotest/minitest_ci.rb
120
113
  - lib/minitest/ci.rb
121
114
  - lib/minitest/ci_plugin.rb
122
- - test/minitest/test_ci.rb
123
- - .gemtest
124
- homepage: https://github.com/bhenderson/minitest-ci
115
+ homepage: https://github.com/circleci/minitest-ci
125
116
  licenses: []
117
+ metadata: {}
126
118
  post_install_message:
127
- rdoc_options:
128
- - --main
129
- - README.txt
119
+ rdoc_options: []
130
120
  require_paths:
131
121
  - lib
132
122
  required_ruby_version: !ruby/object:Gem::Requirement
133
- none: false
134
123
  requirements:
135
- - - ! '>='
124
+ - - ">="
136
125
  - !ruby/object:Gem::Version
137
126
  version: '0'
138
127
  required_rubygems_version: !ruby/object:Gem::Requirement
139
- none: false
140
128
  requirements:
141
- - - ! '>='
129
+ - - ">="
142
130
  - !ruby/object:Gem::Version
143
- version: '0'
131
+ version: 1.3.6
144
132
  requirements: []
145
- rubyforge_project: minitest-ci
146
- rubygems_version: 1.8.25
133
+ rubyforge_project:
134
+ rubygems_version: 2.6.6
147
135
  signing_key:
148
- specification_version: 3
149
- summary: CI reporter plugin for Minitest This gem was made possible by YP.com
150
- test_files:
151
- - test/minitest/test_ci.rb
136
+ specification_version: 4
137
+ summary: Minitest JUnit XML formatter
138
+ test_files: []
data/.autotest DELETED
@@ -1,11 +0,0 @@
1
- # -*- ruby -*-
2
-
3
- require 'autotest/restart'
4
- require 'autotest/isolate'
5
-
6
- Autotest.add_hook :initialize do |at|
7
- at.add_exception 'test/reports'
8
- false
9
- end
10
-
11
- # vim: syntax=ruby
data/.gemtest DELETED
File without changes
@@ -1,111 +0,0 @@
1
- === 3.0.3 / 2013-10-08
2
-
3
- * 1 unknown:
4
-
5
- * Escape suite and testcase name. (statianzo) #12
6
-
7
-
8
- === 3.0.2 / 2013-08-19
9
-
10
- * 4 unknowns:
11
-
12
- * Fix --ci-dir option.
13
- * Fix --ci-dir option.
14
- * Merge pull request #11 from zcrowell/patch-1
15
- * Trying to specify TESTOPTS="--ci-dir=foo" results in OptionParser::NeedlessArgument because --ci-dir is missing a mandatory argument.
16
-
17
-
18
- === 3.0.1 / 2013-07-12
19
-
20
- * 1 unknown:
21
-
22
- * Fix Ci class after changes to Reporter. (ferrous26) #9
23
-
24
-
25
- === 3.0.0 / 2013-07-03
26
-
27
- * 1 major enhancement:
28
-
29
- * Retool to support minitest 5.
30
-
31
- * 1 bug fix:
32
-
33
- * Use inspect to correctly escape test/class names. (eentzel) Fixes #8
34
-
35
- * 5 unknowns:
36
-
37
- * Add autotest plugin.
38
- * Add notes to autotest plugin.
39
- * Update readme to reflect changes.
40
- * Use Isolate file.
41
- * Use error label.
42
-
43
-
44
- === 2.4.0 / 2012-11-10
45
- This release let's people use either 3.x or 4.x as 4.x doesn't break the
46
- needed api
47
-
48
- * 1 unknown:
49
-
50
- * Broaden minitest dependency (millgmi #7)
51
-
52
-
53
- === 2.3.1 / 2012-11-10
54
-
55
- * 1 bug fix:
56
-
57
- * Fix generate_suite to report number of errors correctly (millgmi). fix #7
58
-
59
-
60
- === 2.3.0 / 2012-07-19
61
-
62
- * 1 minor enhancement:
63
-
64
- * Adds zentest as devdep. Forces gem of minitest
65
-
66
- * 4 unknowns:
67
-
68
- * Adds hoe-version.
69
- * CGI.escape suite name in generated filename. Fixes #5.
70
- * Edited to remove second require of cgi.
71
- * I was seeing the wrong version of minitest being loaded in rake multi.
72
-
73
-
74
- === 2.2.0 / 2012-05-10
75
- This release was created separate from 2.1.0 incase people don't want to upgrade to 3.0 (why?)
76
-
77
- * 1 minor enhancement
78
-
79
- * Bumps minitest dep to latest version.
80
-
81
- * 1 unknowns:
82
-
83
- * Updates .gitignore for pkg dir.
84
-
85
- === 2.1.0 / 2012-05-10
86
- * 1 minor enhancement
87
-
88
- * Adds ability to disable cleaning report dir. #2
89
-
90
- * 1 bug fix
91
-
92
- * Uses M::Unit::after_tests instead of M::Unit#status to trigger finish method. Fixes #3
93
-
94
- * 6 unknowns:
95
-
96
- * @report_dir doesn't need to be initialized here because I do it a few lines later.
97
- * Changes clean switch to positive accessor. #2
98
- * Cleans up init variables. Removes runner reset. Appeases warning.
99
- * Removes cruft
100
-
101
- === 2.0.0 / 2012-04-15
102
- * 1 major enhancement
103
-
104
- * Updates to use #record method from newer MiniTest. Removes copied code, yay!
105
-
106
- === 1.0.0 / 2011-09-23
107
-
108
- * 1 major enhancement
109
-
110
- * Birthday!
111
-
data/Isolate DELETED
@@ -1,9 +0,0 @@
1
- gem 'minitest', '>= 5.0.6', '~> 5.0'
2
-
3
- env :development do
4
- gem 'nokogiri', '~> 1.5.0'
5
- gem 'rdoc', '>= 2.4.2'
6
- gem 'ZenTest'
7
- end
8
-
9
- # vim: ft=ruby
@@ -1,10 +0,0 @@
1
- .autotest
2
- History.txt
3
- Isolate
4
- Manifest.txt
5
- README.txt
6
- Rakefile
7
- lib/autotest/minitest_ci.rb
8
- lib/minitest/ci.rb
9
- lib/minitest/ci_plugin.rb
10
- test/minitest/test_ci.rb
data/README.txt DELETED
@@ -1,73 +0,0 @@
1
- = minitest-ci
2
-
3
- * https://github.com/bhenderson/minitest-ci
4
-
5
- == DESCRIPTION:
6
-
7
- CI reporter plugin for Minitest
8
-
9
- This gem was made possible by YP.com
10
-
11
- == FEATURES/PROBLEMS:
12
-
13
- * Uses Minitest::Reporter which is only available since version 5
14
-
15
- == SYNOPSIS:
16
-
17
- require 'minitest/ci'
18
-
19
- Records test results and generates XML files (for junit hudson plugin
20
- for example) at the end of the test run. The report directory is cleaned
21
- between test runs. To disable:
22
-
23
- # test/helper.rb
24
- Minitest::Ci.clean = false
25
-
26
- # Rakefile (optional, but recommended!)
27
- task :ci_cleanup do
28
- require 'minitest/ci'
29
- Minitest::Ci.new.start
30
- end
31
- task :test => %w[ci_cleanup test:one test:two]
32
-
33
- == REQUIREMENTS:
34
-
35
- * See Rakefile
36
-
37
- == INSTALL:
38
-
39
- * gem install minitest-ci
40
-
41
- == DEVELOPERS:
42
-
43
- After checking out the source, run:
44
-
45
- $ rake newb
46
-
47
- This task will install any missing dependencies, run the tests/specs,
48
- and generate the RDoc.
49
-
50
- == LICENSE:
51
-
52
- (The MIT License)
53
-
54
- Copyright (c) 2011 bhenderson
55
-
56
- Permission is hereby granted, free of charge, to any person obtaining
57
- a copy of this software and associated documentation files (the
58
- 'Software'), to deal in the Software without restriction, including
59
- without limitation the rights to use, copy, modify, merge, publish,
60
- distribute, sublicense, and/or sell copies of the Software, and to
61
- permit persons to whom the Software is furnished to do so, subject to
62
- the following conditions:
63
-
64
- The above copyright notice and this permission notice shall be
65
- included in all copies or substantial portions of the Software.
66
-
67
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
68
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
69
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
70
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
71
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
72
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
73
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile DELETED
@@ -1,16 +0,0 @@
1
- # -*- ruby -*-
2
-
3
- require 'rubygems'
4
- require 'hoe'
5
- require 'isolate/rake'
6
-
7
- Hoe.plugin :isolate
8
- Hoe.plugin :version, :git
9
-
10
- Hoe.spec 'minitest-ci' do
11
- developer 'Brian Henderson', 'bhenderson@attinteractive.com'
12
-
13
- self.testlib = :none
14
- end
15
-
16
- # vim: syntax=ruby
@@ -1,162 +0,0 @@
1
- gem 'minitest'
2
- require "minitest/autorun"
3
- require "minitest/ci"
4
-
5
- require 'stringio'
6
- require 'nokogiri'
7
-
8
- class MockTestSuite < Minitest::Test
9
- def test_raise_error
10
- raise 'raise an error'
11
- end
12
-
13
- def test_fail_assertion
14
- flunk 'fail assertion'
15
- end
16
-
17
- def test_skip_assertion
18
- skip 'skip assertion'
19
- end
20
-
21
- def test_pass
22
- pass
23
- end
24
-
25
- def test_invalid_characters_in_message
26
- raise Object.new.inspect
27
- end
28
-
29
- def test_invalid_error_name
30
- raise Class.new(Exception)
31
- end
32
-
33
- def test_escaping_failure_message
34
- flunk "failed: doesn't like single or \"double\" quotes or symbols such as <"
35
- end
36
- end
37
-
38
- describe "spec/with::'punctuation'" do
39
- it "passes" do
40
- pass
41
- end
42
- end
43
-
44
- describe "spec/with::\"doublequotes\"" do
45
- it 'will "pass"' do
46
- pass
47
- end
48
- end
49
-
50
- # better way?
51
- $ci_io = StringIO.new
52
- Minitest::Ci.clean = false
53
-
54
- # setup test files
55
- reporter = Minitest::Ci.new $ci_io
56
- reporter.start
57
- Minitest.__run reporter, {}
58
- reporter.report
59
-
60
- Minitest::Runnable.reset
61
-
62
- class TestMinitest; end
63
- class TestMinitest::TestCi < Minitest::Test
64
-
65
- def output
66
- $ci_io
67
- end
68
-
69
- def setup
70
- file = "test/reports/TEST-MockTestSuite.xml"
71
- @file = File.read file
72
- @doc = Nokogiri.parse @file
73
- @doc = @doc.at_xpath('/testsuite')
74
- end
75
-
76
- def test_testsuite
77
- assert_equal "1", @doc['skipped']
78
- assert_equal "2", @doc['failures']
79
- assert_equal "3", @doc['errors']
80
- assert_equal "3", @doc['assertions']
81
- assert_equal "7", @doc['tests']
82
- assert_equal "MockTestSuite", @doc['name']
83
- end
84
-
85
- def test_testcase_count
86
- assert_equal 7, @doc.children.count {|c| Nokogiri::XML::Element === c}
87
- @doc.children.each do |c|
88
- next unless Nokogiri::XML::Element === c
89
- assert_equal 'testcase', c.name
90
- end
91
- end
92
-
93
- def test_testcase_passed
94
- passed = @doc.at_xpath('/testsuite/testcase[@name="test_pass"]')
95
- assert_equal 0, passed.children.count {|c| Nokogiri::XML::Element === c}
96
- assert_equal '1', passed['assertions']
97
- end
98
-
99
- def test_testcase_skipped
100
- skipped = @doc.at_xpath('/testsuite/testcase[@name="test_skip_assertion"]')
101
- assert_equal 'skip assertion', skipped.at_xpath('skipped')['message']
102
- assert_equal '0', skipped['assertions']
103
- end
104
-
105
- def test_testcase_failures
106
- failure = @doc.at_xpath('/testsuite/testcase[@name="test_fail_assertion"]')
107
- assert_equal 'fail assertion', failure.at_xpath('failure')['message']
108
- assert_equal '1', failure['assertions']
109
- end
110
-
111
- def test_testcase_errors
112
- error = @doc.at_xpath('/testsuite/testcase[@name="test_raise_error"]')
113
- assert_equal 'raise an error', error.at_xpath('error')['message']
114
- assert_equal '0', error['assertions']
115
- end
116
-
117
- def test_testcase_error_with_invalid_chars
118
- error = @doc.at_xpath('/testsuite/testcase[@name="test_invalid_characters_in_message"]')
119
- assert_match( /^#<Object/, error.at_xpath('error')['message'] )
120
- assert_equal '0', error['assertions']
121
- end
122
-
123
- def test_testcase_error_with_invalid_name
124
- error = @doc.at_xpath('/testsuite/testcase[@name="test_invalid_error_name"]')
125
- assert_match( /^#<Class/, error.at_xpath('error')['message'] )
126
- assert_equal '0', error['assertions']
127
- end
128
-
129
- def test_testcase_error_with_bad_chars
130
- error = @doc.at_xpath('/testsuite/testcase[@name="test_escaping_failure_message"]')
131
- msg = "failed: doesn't like single or \"double\" quotes or symbols such as <"
132
- assert_equal msg, error.at_xpath('failure')['message']
133
- assert_equal '1', error['assertions']
134
- end
135
-
136
- def test_output
137
- output.rewind
138
- expected = "\ngenerating ci files\n"
139
- assert_equal expected, output.read
140
- end
141
-
142
- def test_filtering_backtraces
143
- error = @doc.at_xpath('/testsuite/testcase[@name="test_raise_error"]')
144
- refute_match( /lib\/minitest/, error.inner_text )
145
- end
146
-
147
- def test_suitename_with_single_quotes
148
- file = File.read "test/reports/TEST-spec%2Fwith%3A%3A%27punctuation%27.xml"
149
- suite = Nokogiri.parse(file).at_xpath('/testsuite')
150
- assert_equal "spec/with::'punctuation'", suite['name']
151
- end
152
-
153
- def test_suitename_with_double_quotes
154
- file = File.read "test/reports/TEST-spec%2Fwith%3A%3A%22doublequotes%22.xml"
155
- doc = Nokogiri.parse(file)
156
- suite = doc.at_xpath('/testsuite')
157
- testcase = doc.at_xpath('/testsuite/testcase')
158
-
159
- assert_equal 'spec/with::"doublequotes"', suite['name']
160
- assert_equal 'test_0001_will "pass"', testcase['name']
161
- end
162
- end