I'm a python beginner (just finish tutorial). Unittest discover method is official and recommended way to run tests by unittest lib authors. Its comes together with python 2.7 by default witch is most popular version of python today. This method doesn't require any additional code or runner to run tests. Work just out the box. Setup.py test is additional runner witch I meet in early days of my learning course in few outdated libraries. So I think that discover method is preferred.