通过pycharm IDE在py.test中运行特定测试

时间:2017-05-30 11:34:42

标签: python pycharm pytest

考虑以下代码段:

import pytest

@pytest.mark.parametrize("a, b", [
    (1, 1),
    (2, 2),
    (2, 3)
])
def test_eq(a, b):
    assert a == b

现在这会创建三个(平凡的)测试。现在在调试期间我注意到第三次测试失败。我如何告诉pycharm重新运行第三个测试配置(在调试模式下)?右键单击ide中的此测试运行只会显示一个上下文菜单,以重新运行整个test_eq测试集。

1 个答案:

答案 0 :(得分:4)

我很确定你做不到。只有在装饰器运行时才会创建不同的测试,并且在执行定义这些测试的模块时会发生这种情况。换句话说:当你运行测试时。

只要您正在查看PyCharm(或任何其他编辑器)中的代码,那还没有发生。并且PyCharm不会(不能)知道这一个测试函数实际上会产生三种不同的测试用例。

如果您确实需要仅使用参数的选定值运行测试,并且您有可用的源代码,最简单的方法可能是只注释掉您不想使用的参数值。像:

@pytest.mark.parametrize("a, b", [
#     (1, 1),
#     (2, 2),
    (2, 3)
])
def test_eq(a, b):
    assert a == b

稍后,当您解决问题后,您可以再次取消注释这些行。