擅长:python、mysql、java
<p>看看鼻子<a href="http://nose.readthedocs.org/en/latest/writing_tests.html#test-generators" rel="nofollow">test generation</a>。如果您将代码更改为使用yield,它可能会起作用,例如:</p>
<pre><code>from nose.tools import nottest
@nottest
def do_test1(m1, m2):
m1.write('do_test1 f1')
m2.write('do_test1 f2')
@nottest
def do_test2(m1, m2):
m1.write('do_test2 f1')
m2.write('do_test2 f2')
def test():
with open('f1.txt', 'wb') as m1, open('f2.txt', 'wb') as m2:
yield do_test1, m1, m2
yield do_test2, m1, m2
</code></pre>
<p>运行测试可以让您:</p>
<pre><code>$ nosetests context.py -v
context.test(<open file 'f1.txt', mode 'wb' at 0x06A5BF40>, <open file 'f2.txt', mode 'wb' at 0x06A5BF98>) ... ok
context.test(<open file 'f1.txt', mode 'wb' at 0x06A5BF40>, <open file 'f2.txt', mode 'wb' at 0x06A5BF98>) ... ok
Ran 2 tests in 0.004s
OK
</code></pre>