Hi Armin, (CC to py-dev)
On Wed, Sep 03, 2008 at 12:10 +0200, Armin Rigo wrote:
> Hi Holger,
>
> On Wed, Sep 03, 2008 at 10:30:53AM +0200, holger krekel wrote:
> > i think the/a test should go to
> >
> > py/code/testing/test_excinfo.py:430
>
> True, I can add a test there. But I had to change a few small things in
> py/test/ too, so the existing test should not be removed.
ok let's have both.
> > also, i wonder if "tb=crash" would be useful so that only the
> > crashing function is shown.
>
> Not for me. I don't use tb=short very often, but when I use it it's for
> cases where PyPy tests spew tracebacks with a hundred entries. I use
> tb=no a lot though.
do you mean a few hundred failures? If you mean one failure with
a few hundred entries than tb=crash would just show one entry.
maybe we better sort this out on IRC :)
> One thing I'm really missing from the trunk py.test output is the name
> of the failing tests. I know it's often the name of the first function
> in the traceback but this is not always reliable (e.g. with generated
> code or broken .pyc files). My use case here is again PyPy: often, you
> have 5 failures that each spew a lot of stdout and a long traceback.
> Figuring out which 5 tests failed takes quite a while. In my
> rxvt-terminal-only conftest, I can double-click on the final line that
> says "5 failures" and see a list of the names of the failing tests. In
> my opinion it would even be useful to always list these names in the
> final line, e.g. looking like:
>
> ============= 2 failures: test_foo, test_bar ===============
names are usually much longer, particularly if you include
class and module name.
> with something reasonable if there are too many failures, e.g.:
>
> ====== 17 failures: test_foo, test_bar, test_baz, ... ======
>
> the point being that it's easy to re-run "py.test -k test_foo" to
> reproduce just the first failure, which is often the most relevant one,
> without having to use "py.test -x" which can take a long time to run
> before it hits the failure.
i see the point.
hum, we could show a summary (by default or through option)
after the tracebacks similar to what you you see with
"--verbose", e.g.
with curdir=py/doc/ and
py.test --verbose pytest/failure_demo.py
you currently get
pytest/failure_demo.py:15: TestFailing.test_simple FAIL
pytest/failure_demo.py:23:
TestFailing.test_simple_multiline FAIL
pytest/failure_demo.py:28: TestFailing.test_not FAIL
pytest/failure_demo.py:33: TestFailing.test_complex_error
FAIL
pytest/failure_demo.py:40:
TestFailing.test_z1_unpack_error FAIL
pytest/failure_demo.py:44: TestFailing.test_z2_type_error
FAIL
...
But a more fundamental solution is to have py.test store info
about the last test run (by option and/or some ENV variable)
and have options/ways to show and run the last failing tests.
The latter is also what we want for the new htmlconftest
so i suggest we maybe first concentrate on this.
in any case i'd be grateful if you put/copied your hacks
around py.test to directories in contrib (maybe with at
least one functional test) so that it'seasier to work
toegether and ensure that things work after refactorings.
best & thanks,
holger
_______________________________________________
py-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/py-dev