@@ -84,6 +84,21 @@ function tojson(output::String, ts::ReportingTestSet)
8484 # All stdout from the top level test set, used for all tests.
8585 output = truncate_output (output)
8686
87+ function test_code (result:: Test.Result )
88+ if startswith (string (result. test_type), " test_throws" )
89+ " @test_throws $(result. data) $(result. orig_expr) "
90+ elseif result isa Test. LogTestFailure
91+ " @test_logs $(join (result. patterns, ' ' )) $(result. orig_expr) "
92+ elseif result. test_type == :test_unbroken
93+ " @test_broken $(result. orig_expr) "
94+ elseif result isa Test. Broken
95+ macro_name = result. test_type === :skipped ? " @test_skip " : " @test_broken "
96+ " $macro_name $(result. orig_expr) "
97+ else
98+ " @test $(result. orig_expr) "
99+ end
100+ end
101+
87102 """
88103 push_result!(tests, result, name)
89104
@@ -92,31 +107,24 @@ function tojson(output::String, ts::ReportingTestSet)
92107 function push_result! (tests, result:: Test.Result , name)
93108 status = nothing
94109 message = nothing
95- test_code = nothing
96110
97111 if result isa Test. Pass
98112 status = " pass"
99- test_code = " @test $(result. orig_expr) "
100113 elseif result isa Test. Fail
101114 status = " fail"
102115 message = string (result)
103- test_code = " @test $(result. orig_expr) "
104116 elseif result isa Test. LogTestFailure
105117 status = " fail"
106118 message = string (result)
107- test_code = " @test_logs $(join (result. patterns, ' ' )) $(result. orig_expr) "
108119 elseif result isa Test. Error
109120 status = " error"
110121 message = result. backtrace
111- test_code = " @test " * result. orig_expr
112122 elseif result isa Test. Broken
113123 if result. test_type === :skipped
114124 return nothing
115125 end
116126 # TODO : In the future we might have a new `status = skip`
117127 message = string (result)
118- test_code = result. test_type === :skipped ? " @test_skip " : " @test_broken "
119- test_code *= string (result. orig_expr)
120128 else
121129 error (" Unknown testset.results item: $result " )
122130 end
@@ -127,7 +135,7 @@ function tojson(output::String, ts::ReportingTestSet)
127135 " name" => name,
128136 " status" => status,
129137 " message" => message,
130- " test_code" => test_code,
138+ " test_code" => test_code (result) ,
131139 " output" => output,
132140 ))))
133141 end
@@ -159,12 +167,11 @@ function tojson(output::String, ts::ReportingTestSet)
159167 collapse_passing_tests = num_results >= TEST_RESULT_COLLAPSE_THRESHOLD && num_passing > 1 && name != " "
160168
161169 if collapse_passing_tests
162- test_code = join ((" @test $(r. orig_expr) " for r in passing_tests), ' \n ' )
163170 collapsed_name = num_passing == num_results ? name : " $name » $num_passing tests"
164171 push! (tests, Dict (
165172 " name" => collapsed_name,
166173 " status" => " pass" ,
167- " test_code" => test_code
174+ " test_code" => join ( map ( test_code, passing_tests), ' \n ' )
168175 ))
169176 end
170177
0 commit comments