是否可以在自定义类中运行nose测试生成器?我正在尝试将example转换为基于类的简单版本:
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
导致
$ nosetests -v trial.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
我查看了更改日志,并认为这应该从版本0.9.0a1开始工作。
我哪里错了?
答案 0 :(得分:35)
解决方案是较不期望的解决方案:从unittest.TestCase
执行 NOT子类,以便让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
另外,请使用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
答案 1 :(得分:-7)
我相信你必须继承unittest.TestCase
import unittest
class ATest(unittest.TestCase):
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