Why are you adding the listener for each run_tests cycle? That would cause multiple listeners assigned for the same event. Similar to the endurance listener it should happen in the __init__ method.