Guido van Rossum added the comment: On Sun, May 5, 2013 at 4:29 AM, Antoine Pitrou <rep...@bugs.python.org> wrote: > > Antoine Pitrou added the comment: > >> OTOH it's a useful option to have in case you're tracking down >> something that happens (or doesn't happen) when an object is collected > > IMO this is a good reason to implement your specific tearDown method (or call > addCleanup if you prefer), possibly in a shared base class. > > I don't think this is a good candidate for a command-line option, it's too > specialized and it's also not something which should be enabled blindly. In > other words, each test case should know whether it needs a collection or not.
This is not for tests that know or expect they need a call to gc.collect(). This is for the case where you have 500 tests that weren't written with gc.collect() in mind, and suddenly you have a nondeterministic failure because something goes wrong during collection. The cause is probably many tests earlier -- and if you could just call gc.collect() in each tearDown() it would be a cinch to pinpoint the test that causes this. But (unless you had all that foresight) that's a massive undertaking. However turning on the command line option makes it trivial. It's rare that extra collections cause tests to fail (and if it does that's a flakey test anyway) so just turning this on for all tests shouldn't affect correct tests -- however it can slow down your test suite 3x or more so you don't want this to be unittest's default behavior. Hence the suggestion of a command line flag. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17908> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com