Skip to content

Commit 33f3f80

Browse files
committed
Corrected tests and simplified output
1 parent 5d6db26 commit 33f3f80

File tree

2 files changed

+93
-57
lines changed

2 files changed

+93
-57
lines changed

ruby/bin/annotate

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ errors_count = failures.select {|f| f.type == :error }.length
8181
puts "Failures: #{failures_count}"
8282
puts "Errors: #{errors_count}"
8383
puts "Total tests: #{testcases}"
84-
puts "\n"
8584

8685
failures.each do |failure|
86+
puts ""
8787
puts "<details>"
8888
puts "<summary><code>#{failure.name} in #{failure.unit_name}</code></summary>\n\n"
8989
if failure.message
@@ -96,12 +96,11 @@ failures.each do |failure|
9696
puts "in <a href=\"##{failure.job}\">Job ##{failure.job}</a>"
9797
end
9898
puts "</details>"
99-
puts "" unless failure == failures.last
10099
end
101100

102101
if report_slowest > 0
103102
STDERR.puts "Reporting slowest tests ⏱"
104-
103+
puts ""
105104
puts "<details>"
106105
puts "<summary>#{report_slowest} slowest tests</summary>\n\n"
107106
puts "<table>"

ruby/tests/annotate_test.rb

Lines changed: 91 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,38 @@
33

44
describe "Junit annotate plugin parser" do
55
it "handles no failures" do
6-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/no-test-failures/")
6+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/no-test-failures/")
77

8-
assert_equal <<~OUTPUT, output
8+
assert_equal stderr, <<~OUTPUT
99
Parsing junit-1.xml
1010
Parsing junit-2.xml
1111
Parsing junit-3.xml
1212
--- ✍️ Preparing annotation
13-
8 testcases found
14-
There were no failures/errors 🙌
13+
OUTPUT
14+
15+
assert_equal stdout, <<~OUTPUT
16+
Failures: 0
17+
Errors: 0
18+
Total tests: 8
1519
OUTPUT
1620

1721
assert_equal 0, status.exitstatus
1822
end
1923

2024
it "handles failures across multiple files" do
21-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/two-test-failures/")
25+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/two-test-failures/")
2226

23-
assert_equal <<~OUTPUT, output
27+
assert_equal stderr, <<~OUTPUT
2428
Parsing junit-1.xml
2529
Parsing junit-2.xml
2630
Parsing junit-3.xml
2731
--- ✍️ Preparing annotation
28-
6 testcases found
29-
There are 4 failures/errors 😭
30-
4 failures:
32+
OUTPUT
33+
34+
assert_equal stdout, <<~OUTPUT
35+
Failures: 4
36+
Errors: 0
37+
Total tests: 6
3138
3239
<details>
3340
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -110,17 +117,20 @@
110117
end
111118

112119
it "handles failures and errors across multiple files" do
113-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/test-failure-and-error/")
120+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/test-failure-and-error/")
114121

115-
assert_equal <<~OUTPUT, output
122+
assert_equal stderr, <<~OUTPUT
116123
Parsing junit-1.xml
117124
Parsing junit-2.xml
118125
Parsing junit-3.xml
119126
--- ✍️ Preparing annotation
120-
6 testcases found
121-
There are 4 failures/errors 😭
122-
2 failures and 2 errors:
123-
127+
OUTPUT
128+
129+
assert_equal stdout, <<~OUTPUT
130+
Failures: 2
131+
Errors: 2
132+
Total tests: 6
133+
124134
<details>
125135
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
126136
@@ -202,14 +212,17 @@
202212
end
203213

204214
it "accepts custom regex filename patterns for job id" do
205-
output, status = Open3.capture2e("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_JOB_UUID_FILE_PATTERN=junit-(.*)-custom-pattern.xml", "#{__dir__}/../bin/annotate", "#{__dir__}/custom-job-uuid-pattern/")
215+
stdout, stderr, status = Open3.capture3("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_JOB_UUID_FILE_PATTERN=junit-(.*)-custom-pattern.xml", "#{__dir__}/../bin/annotate", "#{__dir__}/custom-job-uuid-pattern/")
206216

207-
assert_equal <<~OUTPUT, output
217+
assert_equal stderr, <<~OUTPUT
208218
Parsing junit-123-456-custom-pattern.xml
209219
--- ✍️ Preparing annotation
210-
2 testcases found
211-
There is 1 failure/error 😭
212-
1 failure:
220+
OUTPUT
221+
222+
assert_equal stdout, <<~OUTPUT
223+
Failures: 1
224+
Errors: 0
225+
Total tests: 2
213226
214227
<details>
215228
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -235,16 +248,19 @@
235248
end
236249

237250
it "uses the file path instead of classname for annotation content when specified" do
238-
output, status = Open3.capture2e("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_FAILURE_FORMAT=file", "#{__dir__}/../bin/annotate", "#{__dir__}/test-failure-and-error/")
251+
stdout, stderr, status = Open3.capture3("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_FAILURE_FORMAT=file", "#{__dir__}/../bin/annotate", "#{__dir__}/test-failure-and-error/")
239252

240-
assert_equal <<~OUTPUT, output
253+
assert_equal stderr, <<~OUTPUT
241254
Parsing junit-1.xml
242255
Parsing junit-2.xml
243256
Parsing junit-3.xml
244257
--- ✍️ Preparing annotation
245-
6 testcases found
246-
There are 4 failures/errors 😭
247-
2 failures and 2 errors:
258+
OUTPUT
259+
260+
assert_equal stdout, <<~OUTPUT
261+
Failures: 2
262+
Errors: 2
263+
Total tests: 6
248264
249265
<details>
250266
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in ./spec/models/account_spec.rb</code></summary>
@@ -327,16 +343,19 @@
327343
end
328344

329345
it "handles failures across multiple files in sub dirs" do
330-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/tests-in-sub-dirs/")
346+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/tests-in-sub-dirs/")
331347

332-
assert_equal <<~OUTPUT, output
348+
assert_equal stderr, <<~OUTPUT
333349
Parsing sub-dir/junit-1.xml
334350
Parsing sub-dir/junit-2.xml
335351
Parsing sub-dir/junit-3.xml
336352
--- ✍️ Preparing annotation
337-
6 testcases found
338-
There are 4 failures/errors 😭
339-
4 failures:
353+
OUTPUT
354+
355+
assert_equal stdout, <<~OUTPUT
356+
Failures: 4
357+
Errors: 0
358+
Total tests: 6
340359
341360
<details>
342361
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -419,14 +438,17 @@
419438
end
420439

421440
it "handles empty failure bodies" do
422-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/empty-failure-body/")
441+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/empty-failure-body/")
423442

424-
assert_equal <<~OUTPUT, output
443+
assert_equal stderr, <<~OUTPUT
425444
Parsing junit.xml
426445
--- ✍️ Preparing annotation
427-
2 testcases found
428-
There is 1 failure/error 😭
429-
1 failure:
446+
OUTPUT
447+
448+
assert_equal stdout, <<~OUTPUT
449+
Failures: 1
450+
Errors: 0
451+
Total tests: 2
430452
431453
<details>
432454
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -439,15 +461,18 @@
439461
assert_equal 64, status.exitstatus
440462
end
441463

442-
it "handles missing message attributes" do
443-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/missing-message-attribute/")
464+
it "handles miss message attributes" do
465+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/missing-message-attribute/")
444466

445-
assert_equal <<~OUTPUT, output
467+
assert_equal stderr, <<~OUTPUT
446468
Parsing junit.xml
447469
--- ✍️ Preparing annotation
448-
4 testcases found
449-
There are 3 failures/errors 😭
450-
1 failure and 2 errors:
470+
OUTPUT
471+
472+
assert_equal stdout, <<~OUTPUT
473+
Failures: 1
474+
Errors: 2
475+
Total tests: 4
451476
452477
<details>
453478
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -469,14 +494,17 @@
469494
end
470495

471496
it "handles cdata formatted XML files" do
472-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/failure-with-cdata/")
497+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/failure-with-cdata/")
473498

474-
assert_equal <<~OUTPUT, output
499+
assert_equal stderr, <<~OUTPUT
475500
Parsing junit.xml
476501
--- ✍️ Preparing annotation
477-
2 testcases found
478-
There is 1 failure/error 😭
479-
1 error:
502+
OUTPUT
503+
504+
assert_equal stdout, <<~OUTPUT
505+
Failures: 0
506+
Errors: 1
507+
Total tests: 2
480508
481509
<details>
482510
<summary><code>Account#maximum_jobs_added_by_pipeline_changer returns 250 by default in spec.models.account_spec</code></summary>
@@ -493,16 +521,21 @@
493521
end
494522

495523
it "reports specified amount of slowest tests" do
496-
output, status = Open3.capture2e("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_REPORT_SLOWEST=5", "#{__dir__}/../bin/annotate", "#{__dir__}/no-test-failures/")
524+
stdout, stderr, status = Open3.capture3("env", "BUILDKITE_PLUGIN_JUNIT_ANNOTATE_REPORT_SLOWEST=5", "#{__dir__}/../bin/annotate", "#{__dir__}/no-test-failures/")
497525

498-
assert_equal <<~OUTPUT, output
526+
assert_equal stderr, <<~OUTPUT
499527
Parsing junit-1.xml
500528
Parsing junit-2.xml
501529
Parsing junit-3.xml
502530
--- ✍️ Preparing annotation
503-
8 testcases found
504-
There were no failures/errors 🙌
505531
Reporting slowest tests ⏱
532+
OUTPUT
533+
534+
assert_equal stdout, <<~OUTPUT
535+
Failures: 0
536+
Errors: 0
537+
Total tests: 8
538+
506539
<details>
507540
<summary>5 slowest tests</summary>
508541
@@ -523,13 +556,17 @@
523556
end
524557

525558
it "handles junit dir paths with hidden directories" do
526-
output, status = Open3.capture2e("#{__dir__}/../bin/annotate", "#{__dir__}/.tests-in-hidden-dir/")
559+
stdout, stderr, status = Open3.capture3("#{__dir__}/../bin/annotate", "#{__dir__}/.tests-in-hidden-dir/")
527560

528-
assert_equal <<~OUTPUT, output
561+
assert_equal stderr, <<~OUTPUT
529562
Parsing junit-1.xml
530563
--- ✍️ Preparing annotation
531-
2 testcases found
532-
There were no failures/errors 🙌
564+
OUTPUT
565+
566+
assert_equal stdout, <<~OUTPUT
567+
Failures: 0
568+
Errors: 0
569+
Total tests: 2
533570
OUTPUT
534571

535572
assert_equal 0, status.exitstatus

0 commit comments

Comments
 (0)