[SciPy-dev] Nose tests - merged

Matthew Brett matthew.brett@gmail....
Sat Jan 12 12:18:33 CST 2008


Hi Nathan,

> I like the separation of benchmarks and unittests.  I'll update my
> sparse benchmarks accordingly.

Ah - well - there's the first glitch.  I see you very sensibly read
the README file, which says:

Benchmark tests
===============

Routines that don't actually test correctness but instead do performance
benchmarking will live in a benchmarks/ directory next to the tests/ directory
of each module.  There will be a scipy.benchmark() call that does benchmarking,
similar to scipy.test() but separate from it.

Now, I didn't do this because it would have added an extra layer of
nose complexity.as well as requiring some boilerplate in the module
init to implement. What I did do was add a test decorator specific for
benchmarks.  So,

test()
test('fast')
test('full')

do not run tests with a label of 'bench'

but

test('bench') does.

Tests can be labeled thus:

@dec.bench
def test_algorithm_speed():
...

For me, the way it works now seems to cover the need for something
obviously benchmarking without adding a extra layer on top of the
testing and code layout.  But, we could also go the other way.  I'd be
happy of group thoughts.

Matthew


More information about the Scipy-dev mailing list