[py-dev] feedback on py.test discovery/setup/process documentation
Jason R. Coombs
jaraco at jaraco.com
Thu Aug 5 22:46:24 CEST 2010
That's a big help. I had bypassed the xUnit docs because the name sounded
like a feature in which I wasn't interested (just because of the name).
Silly me. Thanks for the reference.
> -----Original Message-----
> From: holger krekel [mailto:holger at merlinux.eu]
> Sent: Thursday, 05 August, 2010 11:29
> To: Jason R. Coombs
> Cc: py-dev at codespeak.net
> Subject: Re: [py-dev] feedback on py.test discovery/setup/process
> documentation
>
> Hi Jason,
>
> thanks for the feedback, i appreciate it. I am aware that documentation
> needs some love - i actually plan to port it to sphinx (which has builtin
search
> apart from other nicities) and add an example section.
>
> That being said, under
>
> http://codespeak.net/py/dist/test/features.html
>
> there is a link to "xUnit style setup":
>
> http://codespeak.net/py/dist/test/xunit_setup.html
>
> which may help a bit regarding the hooks. It doesn't mention
> pytest_configure which is mentioned here:
>
> http://codespeak.net/py/dist/test/customize.html
>
> ... so i guess it's true that things should be organised more according to
usage
> patterns / needs rather than the structure of the implementation. Oh, and
> feel free to write blog posts about things you found so we can link them
:)
>
> best,
> holger
>
> On Thu, Aug 05, 2010 at 08:05 -0700, Jason R. Coombs wrote:
> > I was espousing the joys of py.test at a recent #DCPython meetup. I
> > found, however, that I'm not the only person frustrated by the lack of
> > documentation on the basic process py.test uses to discover, setup,
> > and conduct tests.
> >
> >
> >
> > There's mention here and there of setup/teardown methods, and their
> > names are fairly intuitive, but I can't find that they're documented
> > anywhere. It would be nice if there was a half-page document on the
> > process py.test uses to conduct a single test. something like:
> >
> >
> >
> > # globally
> >
> > Run pytest_configure
> >
> > For each test module matching test_*.py:
> >
> > Run setup_module(module object)
> >
> > For each class in module.Test*:
> >
> > skip if it's not a valid test class
(i.e.
> > has an __init__ method)
> >
> > Run setup_class(class_object) [p.s.
> > why doesn't setup_class have to be a classmethod?]
> >
> > For each method:
> >
> > Run
> > setup_method(instance,
> > method)
> >
> > Run test
> >
> > Run teardown_method
> >
> > Run teardown_class
> >
> > .
> >
> >
> >
> > I've discovered all of this through trial and error (and tracking down
> > examples here and there). For example, I couldn't find setup_method
> > documented anywhere, even though I knew what I wanted (a setup for
> > each test to be run).
> >
> >
> >
> > Also, it would be nice to have some clarification on which classes
> > will be discovered. I was recently bitten by an interesting feature.
> > If a test class has an __init__ method, it will not be run as a test.
> > For one test, I was using the __init__ method to define setup for each
> > instance of the test. It turns out that by using setup_method instead
> > of __init__, it did precisely what I wanted, but I went several weeks
> > thinking my tests were running, when they were being silently skipped.
> >
> >
> >
> > I realize that all of this seems a little nitpicky. Truly, I love
> > py.test, but I have to agree with my colleagues that it's a little
> > difficult getting to know the basics. It doesn't help matters that
> > because of the name, it's difficult to search the web for py.test
resources.
> >
> >
> >
> > If you have any suggestions on how I might have learned these details
> > other than through trial-and-error, please point me to them.
> >
> >
> >
> > Regards,
> >
> >
> >
> > Jason
> >
>
>
>
> > _______________________________________________
> > py-dev mailing list
> > py-dev at codespeak.net
> > http://codespeak.net/mailman/listinfo/py-dev
>
>
> --
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6448 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20100805/dafaf8c5/attachment.bin>
More information about the Pytest-dev
mailing list