Jen*_*lin 6 python unit-testing nose pytest
我正在研究一组python单元测试,这些测试目前是使用内置测试框架的pythons构建的.我想编写参数化测试,根据我给出的数据集执行多次.
即.如果我的数据集是[1,2,3,4],我的测试函数将使用我的数据集中的输入运行四次.
def test(data):
if data > 0:
#Pass the test
Run Code Online (Sandbox Code Playgroud)
根据我的理解,目前在内置框架中这是不可能的,除非我在我的测试函数中放置一个循环.我不想这样做,因为即使一个输入失败,我也需要测试继续执行.
我已经看到可以使用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
Run Code Online (Sandbox Code Playgroud)
[编辑]我应该补充一点,你也可以这样做
@pytest.mark.parametrize('data', [1,2,3,4])
def test_data(data):
assert data > 0
Run Code Online (Sandbox Code Playgroud)
所以我会说py.test是参数化单元测试的一个很好的框架......
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |