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@codespeak.net
> http://codespeak.net/mailman/listinfo/py-dev


-- 
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to