Lon*_*ine 19 python generator nose
是否可以在自定义类中运行nose测试生成器?我试图将示例转换为基于类的简单版本:
file: trial.py
>>>>>>>>>>>>>>
class ATest():
def test_evens(self):
for i in range(0, 5):
yield self.check_even, i, i * 3
def check_even(self, n, nn):
assert n % 2 == 0 or nn % 2 == 0
Run Code Online (Sandbox Code Playgroud)
这导致了
$ nosetests -v trial.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
Run Code Online (Sandbox Code Playgroud)
我查看了更改日志,并认为这应该从版本0.9.0a1开始工作.
我哪里错了?
and*_*cho 35
解决方案是较不期望的解决方案:不要进行子类化unittest.TestCase以便让nosetests发现生成器方法.代码使用nosetests 1.1.3(最新的GitHub):
class TestA(object):
def test_evens(self):
for i in range(0, 5):
yield self.check_even, i, i * 3
def check_even(self, n, nn):
assert n % 2 == 0 or nn % 2 == 0
Run Code Online (Sandbox Code Playgroud)
另外,使用TestA而不是ATest.
test.py:2: TestA.test_evens[0] PASSED
test.py:2: TestA.test_evens[1] FAILED
test.py:2: TestA.test_evens[2] PASSED
test.py:2: TestA.test_evens[3] FAILED
test.py:2: TestA.test_evens[4] PASSED
Run Code Online (Sandbox Code Playgroud)