@@ -18,8 +18,8 @@ defmodule ExUnit.CLIFormatter do
1818 pid
1919 end
2020
21- def suite_finished ( id , ms ) do
22- :gen_server . call ( id , { :suite_finished , ms } , @ timeout )
21+ def suite_finished ( id , run_us , load_us ) do
22+ :gen_server . call ( id , { :suite_finished , run_us , load_us } , @ timeout )
2323 end
2424
2525 def case_started ( _id , _test_case ) do
@@ -44,8 +44,8 @@ defmodule ExUnit.CLIFormatter do
4444 { :ok , Config . new }
4545 end
4646
47- def handle_call ( { :suite_finished , ms } , _from , config ) do
48- print_suite ( config . counter , config . test_failures , config . case_failures , ms )
47+ def handle_call ( { :suite_finished , run_us , load_us } , _from , config ) do
48+ print_suite ( config . counter , config . test_failures , config . case_failures , run_us , load_us )
4949 { :stop , :normal , length ( config . test_failures ) , config }
5050 end
5151
@@ -82,19 +82,19 @@ defmodule ExUnit.CLIFormatter do
8282 super
8383 end
8484
85- defp print_suite ( counter , [ ] , [ ] , ms ) do
85+ defp print_suite ( counter , [ ] , [ ] , run_us , load_us ) do
8686 IO . write "\n \n "
87- IO . puts "Finished in #{ format_ms ms } seconds"
87+ print_time ( run_us , load_us )
8888 IO . puts success ( "#{ counter } tests, 0 failures" )
8989 end
9090
91- defp print_suite ( counter , test_failures , case_failures , ms ) do
91+ defp print_suite ( counter , test_failures , case_failures , run_us , load_us ) do
9292 IO . write "\n \n Failures:\n \n "
9393 num_fails = Enum . reduce Enum . reverse ( test_failures ) , 1 , print_test_failure ( & 1 , & 2 , File . cwd! )
9494 Enum . reduce Enum . reverse ( case_failures ) , num_fails , print_case_failure ( & 1 , & 2 , File . cwd! )
9595 num_invalids = Enum . count test_failures , fn test -> test . invalid end
9696
97- IO . puts "Finished in #{ format_ms ms } seconds"
97+ print_time ( run_us , load_us )
9898
9999 num_fails = num_fails - 1
100100 message = "#{ counter } tests, #{ num_fails } failures"
@@ -160,6 +160,18 @@ defmodule ExUnit.CLIFormatter do
160160 Enum . each stacktrace , fn ( s ) -> IO . puts stacktrace_info format_entry ( s , cwd ) end
161161 end
162162
163+ defp print_time ( run_us , nil ) do
164+ IO . puts "Finished in #{ run_us |> normalize_us |> format_us } seconds"
165+ end
166+
167+ defp print_time ( run_us , load_us ) do
168+ run_us = run_us |> normalize_us
169+ load_us = load_us |> normalize_us
170+
171+ ms = run_us + load_us
172+ IO . puts "Finished in #{ format_us ms } seconds (#{ format_us load_us } s on load, #{ format_us run_us } s on tests)"
173+ end
174+
163175 defp pad ( binary , max ) do
164176 remaining = max - size ( binary )
165177 if remaining > 0 do
@@ -169,12 +181,16 @@ defmodule ExUnit.CLIFormatter do
169181 end
170182 end
171183
172- defp format_ms ( ms ) do
173- if ms < 100000 do
174- "0.0#{ div ( ms , 10000 ) } "
184+ defp normalize_us ( us ) do
185+ div ( us , 10000 )
186+ end
187+
188+ defp format_us ( us ) do
189+ if us < 10 do
190+ "0.0#{ us } "
175191 else
176- ms = div ms , 100000
177- "#{ div ( ms , 10 ) } .#{ rem ( ms , 10 ) } "
192+ us = div us , 10
193+ "#{ div ( us , 10 ) } .#{ rem ( us , 10 ) } "
178194 end
179195 end
180196
0 commit comments