如何在pytest k命令行选项中包含正斜杠“/”

2024-04-27 14:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用pytest-k选项来过滤掉特定的测试。过滤器不工作,当它包含正斜杠“/”时返回错误。我试着用一个和两个反斜杠来逃避它,但仍然是相同的错误。你知道怎么做吗

ERROR: Wrong expression passed to '-k': 
test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv4.yml: 
at column 22: unexpected character "/"
$ pytest tools/test_pinger.py --testinfo topoA_PEs.yml --params_file topoA_r28_params.yml --ulog -s --collect-only -k "test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv4.yml"
=============================================================================================================================== test session starts ===============================================================================================================================
platform linux -- Python 3.7.4, pytest-6.2.2, py-1.9.0, pluggy-0.13.0
rootdir: /home/as2863/pythonProjects/p1-automation, configfile: pytest.ini
plugins: csv-2.0.1, check-0.3.5, pylama-7.6.6, dependency-0.4.0, instafail-0.4.0, ordering-0.6, allure-pytest-2.8.20, repeat-0.7.0, reportportal-5.0.3
collected 18 items

<Package tools>
  <Module test_pinger.py>
    <Function test_pinger[pingtracer_topoA_L0.yml]>
    <Function test_pinger[pingtracer_topoA_L10.yml]>
    <Function test_pinger[pingtracer_topoA_ADI_L0.yml]>
    <Function test_pinger[pingtracer_topoA_ADI_L10.yml]>
    <Function test_pinger[pingtracer_topoA_AVPN_L0.yml]>
    <Function test_pinger[pingtracer_topoA_AVPN_L10.yml]>
    <Function test_pinger[pingtracer_topoA_MOW_L0.yml]>
    <Function test_pinger[pingtracer_topoA_MOW_L10.yml]>
    <Function test_pinger[new/pingtracer_topoA_US_PEs_L0.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_MOW_PLEAFS_L0_ipv4.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_MOW_PLEAFS_L0_ipv6.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_PEs_L0_ipv4.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_PEs_L0_ipv6.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_PEs_L10_ipv4.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv4.yml]>
    <Function test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv6.yml]>
    <Function test_pinger_mpls[pingtracer_topoA_ADI_L10.yml]>
    <Function test_pinger_mpls[pingtracer_topoA_AVPN_L10.yml]>

=========================================================================================================================== 18 tests collected in 0.34s ===========================================================================================================================
ERROR: Wrong expression passed to '-k': test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv4.yml: at column 22: unexpected character "/"

(p1_netmiko_3-3-3) asilver@ubuntuP1-SYSlog-S1:~/pythonProjects/p1-automation$

Tags: testpytestymlfunctionpingipv4usadi
1条回答
网友
1楼 · 发布于 2024-04-27 14:51:06

-k是(有意的)不灵活的,它并不意味着允许所有输入进行匹配

也就是说,有两种方法可以满足您的需求:

  1. 稍微调整-k表达式:pytest -k 'test_pinger and ping_topoA_ADI_US_PLEAFS_L0_ipv4'
  2. 直接使用测试id(这似乎是您正在尝试的)pytest 'tools/test_pinger.py::test_pinger[pingtrace/ADI/ping_topoA_ADI_US_PLEAFS_L0_ipv4.yml]'

免责声明:我是pytest核心开发人员

相关问题 更多 >