如何要求Pytest在python脚本中运行特定的测试?

时间:2019-01-02 17:26:48

标签: python-3.x pytest

如果我在一个脚本中运行了多个测试,例如:

import pytest

@pytest.mark.parametrize("test_input,expected", [
    ("3+5", 8),
    ("2+4", 6),
    ("6*9", 42),
])
def test_eval(test_input, expected):
    assert eval(test_input) == expected

@pytest.mark.parametrize('test_input,expected', [
        (1,1),
        (2,2),
        (2,3),
        ])
def test_equal(test_input,expected):
    assert test_input == expected


if __name__ == '__main__':
    '''
    Test Zone!
    '''
    #executing the tests
    pytest.main([__file__]) 

如何使用最后一行pytest.main([__file__])一次运行一个测试,而不是一次运行所有测试?

1 个答案:

答案 0 :(得分:2)

使用pytest.main()就像根据pytest documentation从命令行调用pytest一样。您可以为此传递命令和参数,从而允许您使用-k flag通过关键字表达式指定测试:

pytest.main(["-k", "test_func"])

您也可以通过node id指定测试:

pytest.main(["test_mod.py::test_func"])