python - 通过pycharm IDE运行py.test中的特定测试

标签 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 重新运行第三个测试配置(在 Debug模式下)?在 ide 中右键单击此测试运行只会显示一个上下文菜单,用于重新运行整个 test_eq 测试集。

最佳答案

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

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

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

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

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

关于python - 通过pycharm IDE运行py.test中的特定测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44261164/

相关文章:

python - Python 多处理模块中 apply() 和 apply_async() 的区别

python - 如何在 CNTK 中训练具有多个输出层的网络?

python - 如何键入提示具有封闭类类型的方法?

pytest - 在测试完成时运行的基本 pytest 拆解

python - py.test 将 IndexError/KeyError 报告为失败而不是错误

python - 非单调数据的三次样条(不是一维函数)

python - 3D matplotlib : color depending on x axis position

python - 如何通过shell激活PyCharm创建的venv?

python - 将列表理解分配给枚举值

python - 无法从 pytest.fixture 获取数据,而是获取数据位置