[Tutor] Testing dymamically created methods
Thomas Maier
hayzer at gmail.com
Tue Jan 10 13:15:01 CET 2012
Hi all,
I would like to use some existing tool like py.test or nose to
run my tests, but I failed to do so.
The problem is as follow. I have tests:
### test_methods.py ###
def test_one():
assert 1 == 1
def test_two():
assert 1 == 1
#############
I have abstraction layer that keeps information
about this test, like method name.
It's simple JSON file.
Then I have the test runner:
### test_runner.py ###
def read_test_definition():
"""read the JSON file and returns dict with test details"""
def test_run():
my_test_data = read_test_definition()
import test_methods
for testid in my_test_data:
my_method = my_test_data[testid]
# here the 'my_method' is equal 'test_one' or 'test_two', hope
it's clear..
test_method = getattr(test_methods, my_method)
test_method()
###########
This code works without py.test or nosetests. For example if I use print
instead of 'assert'.
Both py.test and nosetests failed to execute this correctly.
Or maybe they do execute it correctly, I just don't understand it..:)
They both report only single test was executed.
I would like to see test report for each method executed in 'for' loop.
Is it possible?
PS. Sorry for my ignorance, I just started to learn Python last week.
Thanks,
Thomas
More information about the Tutor
mailing list