我从事一组 python 单元测试,这些单元测试目前是使用内置于测试框架中的 python 构建的。我想编写参数化测试,这些测试将根据我提供的数据集执行多次。
即。如果我的数据集是 [1,2,3,4],我的测试函数将使用我的数据集中的输入运行四次。
def test(data):
if data > 0:
#Pass the test
据我了解,目前在内置框架中这是不可能的,除非我在我的测试函数中放置一个循环。我不想这样做,因为即使一个输入失败,我也需要测试继续执行。
我已经看到可以使用 nose 或 pyTest 来完成。哪个是最好用的框架?有没有我可以使用的比这两个更好的框架?
提前致谢!
最佳答案
请注意,这恰恰是最近添加的 funcargs 最常见的用途之一。在 py.test 中。
在你的情况下你会得到:
def pytest_generate_tests(metafunc):
if 'data' in metafunc.funcargnames:
metafunc.parametrize('data', [1,2,3,4])
def test_data(data):
assert data > 0
[编辑] 我可能应该补充一点,你也可以像这样简单地做到这一点
@pytest.mark.parametrize('data', [1,2,3,4])
def test_data(data):
assert data > 0
所以我想说 py.test 是参数化单元测试的一个很好的框架......
关于python - python中的参数化单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439765/