package Ġf tl . reports . util Ċ Ċ import Ġf tl . api . J UnitTest Ċ import Ġf tl . domain . junit . merge Double Ċ import Ġf tl . domain . junit . skipped Ċ import Ġf tl . domain . junit . successful Ċ import Ġf tl . util . strip Not Numbers Ċ Ċ // ĠRead Ġin ĠJ Unit Report . xml Ġand Ġremove Ġduplicate Ġresults Ġwhen Ġ` num - fl aky - test - attempts ` Ġis Ġ> Ġ 0 Ċ // Ġfor Ġeach Ġtest Ġ` name =" test Fails " Ġclassname =" com . example . app . Example Ui Test "` Ċ // ĠKeep Ġfirst Ġresult . ĠIf Ġnext Ġresult Ġfor Ġthe Ġsame Ġtest Ġis Ġsuccessful , Ġkeep Ġlast Ġsuccessful Ġresult . Ċ object ĠJ Unit D edu pe Ġ{ ĊĊĠĠĠ Ġprivate Ġfun ĠJ UnitTest . Case . key (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ this . classname } # ${ this . name }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmodify ( test Result : ĠJ UnitTest . Result ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Result ?. tests u ites ?. forEach Ġ{ Ġsuite Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtestCase Map Ġ= Ġmutable Map Of < String , ĠJ UnitTest . Case >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuite . test cases ?. forEach Ġ{ Ġtest case Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( testCase Map [ testcase . key ()] Ġ== Ġnull Ġ|| Ġtest case . successful ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtestCase Map [ testcase . key ()] Ġ= Ġtest case ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuite . test cases Ġ= ĠtestCase Map . values ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuite . update Test Stats () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCall Ġafter Ġsetting Ġtest cases Ġmanually Ġto Ġupdate Ġthe Ġstatistics Ġ( error Ġcount , Ġskip Ġcount , Ġetc .) Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠJ UnitTest . Suite . update Test Stats () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . tests Ġ= Ġtest cases ?. size . toString () ĊĠĠĠĠĠĠĠ Ġthis . failures Ġ= Ġtest cases ?. count Ġ{ Ġit . failures ?. isNotEmpty () Ġ== Ġtrue Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġthis . errors Ġ= Ġtest cases ?. count Ġ{ Ġit . errors ?. isNotEmpty () Ġ== Ġtrue Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġthis . skipped Ġ= Ġtest cases ?. count Ġ{ Ġit . skipped () Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġthis . time Ġ= Ġtest cases ?. fold (" 0 ") Ġ{ Ġacc , Ġtest Ġ-> Ġmerge Double ( acc , Ġtest . time . strip Not Numbers ()) Ġ} Ġ?: Ġ" 0 " ĊĠĠĠ Ġ} Ċ } Ċ