aurora <[EMAIL PROTECTED]> writes: > What I really want to bring up is your might want to look at refactoring > your module in the first place. 348 test cases for one module sounds like a > large number. That reflects you have a fairly complex module to be tested > to start with. Often the biggest benefit of doing automated unit testing is > it forces the developers to modularize and decouple their code in order to > make it testable. This action alone improve that code quality a lot. If > breaking up the module make sense in your case, the test structure will > follows.
Here I have to emphasize a little: of those 348 test cases, only ~30 or so are real, hand-coded methods. Some of the tests are generated on the fly by py.test. It is not as fancy as it sounds, though. All it does is test_some_feature(self): for foo, bar, expected in known_values: yield self.foo_bar_equals, foo, bar, expected def foo_bar_equals(self, foo, bar, expected): assert some_feature(foo, bar) == expected There are two methods. However, if known_values contains 100 tuples, py.test generates 100 "test methods" on the fly. Of course you could just do test_some_feature(self): for foo, bar, expected in known_values: assert some_feature(foo, bar) == expected but then you wouldn't see so easily which values are tested when you use verbose mode, that is. That's one of the (many) nice things in py.test I like :) However, being practical in testing is probably more worth than being completely orthodox, on that I agree. That's why I seldom stick to strict rules in doing tests, though being systematic helps alot, especially regarding orthogonality. It doesn't help to test same features over and over again. Eg. if I wrote a test for a dot in 2D space, I'd write tests for dot on origo, on positive x-axis with y < 0 and y > 0, ditto for x and y reversed, then same tests for negative x and y, and last for positive and negative x and y with other being exactly zero. There's no point testing other values; all other combinations fall to some of the categories mentioned. -- # Edvard Majakari Software Engineer # PGP PUBLIC KEY available Soli Deo Gloria! $_ = '456476617264204d616a616b6172692c20612043687269737469616e20'; print join('',map{chr hex}(split/(\w{2})/)),uc substr(crypt(60281449,'es'),2,4),"\n"; -- http://mail.python.org/mailman/listinfo/python-list