[TIP] Testing specific code
kumar.mcmillan at gmail.com
Thu Sep 3 11:33:43 PDT 2009
> On Tue, Sep 01, 2009 at 03:46:02PM -0600, Matt Harrison wrote:
> -> [...] As an idea to help deal with that and
> -> to help focus coverage attention on specific code points, I thought of
> -> an idea. (I'm assuming others here have probably thought of it before
> -> to). What I'd like to do is have a (emacs) command that says 'run
> -> tests for this function/method'. Then something
> -> (nose??/plugin??/emacs??) goes and finds tests that invoke that method
> -> and only runs those tests and reports coverage for them.
yea, this would be really slick. Holger had a good idea for this
which is pretty straight forward and easier than grepping. You just
add a list of test files to each code module. I.E.
# content of: mymodule.py
# relative paths
__testfiles__ = ['test/test_unittest.py', 'test/test_functional.py']
It's not as granular as what you're talking about but might be good
enough for figuring out what tests to run given a function/method.
To get more precise about it, yeah, you'd probably need some kind of
trace function that kept track of what functions were executed during
> -> A naive
> -> implementation would be a simple regex match for the function name and
> -> then look to see if it resides in a test. That way you can edit your
> -> codes and your tests and quickly retrieve relevant coverage
> -> information. Does this make sense?
> -> So before I go off and implement this I thought I'd ask if it already
> -> exists. I can't find it. Also feedback is good. Is there a better
> -> method/workflow? I'd imagine other's might find such functionality
> -> useful even without coverage information. ie when you are looking
> -> at/developing tests for code that is new to you. I would think a nose
> -> plugin would work best...
More information about the testing-in-python