<div dir="ltr"><div class="gmail_extra"><div class="gmail_extra">handle_event(#event{name=start_info, data = {_NoOfTests,_NoOfSuites,NoOfCases}}, #state{} =State) -></div><div class="gmail_extra">  {ok, State#state{cases = NoOfCases}};</div><div><br></div><div><br></div><div><div>handle_event(#event{name=tc_done, data = _Data}, #state{done = Done, started_at = Start} =State) -></div><div>  Out = io_lib:format("~5.2f% ~Bs", [Done1*100/State#state.cases, (now_ms() - Start) div 1000]),<br></div><div>  io:format(standard_error, "~s\e[~BD", [Out, iolist_size(Out)]),</div><div>  {ok, State#state{done = Done1}};</div></div><div><br></div><div><br></div><div><div>handle_event(#event{name=test_stats,data = {Ok,Failed,{UserSkipped,AutoSkipped}}}, #state{} = State) -></div><div>  {ok, State#state{</div><div>    ok = Ok + State#state.ok,</div><div>    failed = Failed + State#state.failed,</div><div>    skipped = UserSkipped + AutoSkipped + State#state.skipped</div><div>  }};</div></div><div><br></div><div><br></div><div><div>handle_event(#event{name=test_done}, #state{} =State) -></div></div><div><div>  io:format(standard_error, "Total: ~Bs \n"</div></div><div>  ....</div><div><br></div><div><br></div><div>ct_run calculates number of test cases before start, so you can make a spinner with percents.</div><div><br></div></div></div>