我目前正在遵循这个py.test示例,当我不使用类时,它就会工作,但是当我将测试用例引入类时,我会失败。
我写的最小的一个例子是:
import unittest
import pytest
class FixtureTestCase(unittest.TestCase):
@pytest.mark.parametrize("test_input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_1(self, a, b):
self.assertEqual(a, b)
不幸的是当我执行
py.test test_suite.py
我收到错误消息:
TypeError: test_1() takes exactly 3 arguments (1 given)
如何生成一个测试电池?
如果从
unittest.TestCase
派生子类,则测试方法不能有其他参数。如果您只是从object
中进行子类划分,它就可以工作了(尽管您必须使用常规的assert
语句而不是TestCase.assertEqual
方法。不过,在这一点上,它有点回避了为什么要使用类而不是仅仅定义函数的问题,因为测试本质上是相同的,但需要较少的总体样板和代码。
最后,考虑到@Brendan Abel的回复和评论,我成功地做到了我想做的:
然后我可以通过nosetests命令执行测试:
相关问题 更多 >
编程相关推荐