考虑以下代码段:
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
测试集。
答案 0 :(得分:4)
我很确定你做不到。只有在装饰器运行时才会创建不同的测试,并且在执行定义这些测试的模块时会发生这种情况。换句话说:当你运行测试时。
只要您正在查看PyCharm(或任何其他编辑器)中的代码,那还没有发生。并且PyCharm不会(不能)知道这一个测试函数实际上会产生三种不同的测试用例。
如果您确实需要仅使用参数的选定值运行测试,并且您有可用的源代码,最简单的方法可能是只注释掉您不想使用的参数值。像:
@pytest.mark.parametrize("a, b", [
# (1, 1),
# (2, 2),
(2, 3)
])
def test_eq(a, b):
assert a == b
稍后,当您解决问题后,您可以再次取消注释这些行。