接口自动化中pytest.main()函数参数设置无效问题

在接口自动化测试中遇到pytest.main()函数参数不生效的问题,同时发现PyCharm只运行当前文件的pytest用例,而非整个目录。问题根源在于PyCharm的测试运行器配置,默认设置为Unittests。解决方案是进入PyCharm的设置,将Python集成工具的默认测试运行器改为Pytest。
摘要由CSDN通过智能技术生成

接口自动化中pytest.main()函数参数设置无效问题
场景:1.pytest.main()加参数无效。

2.不会运行文件夹下所有pytest用例,只会执行当前py文件的pytest用例。

3.在Pycharm中右键运行python程序时出现Run ‘python tests in **.py’,而不是Run‘’。

以上三个问题是同一个问题。
这其实是进入了pytest模式。

解决方法:
进入到File->Settings->Tools->Python integrated Tools页面
找到Testing下的Default test runner
把Pytest设置为Unittests就可以了

参考https://blog.csdn.net/weixin_44867493/article/details/123062129

`pytest.main()` 是 `pytest` 框架用来从命令行启动测试会话的一个函数。通常情况下,`pytest` 会自动收集和执行测试用例,但如果你需要在命令行向 `pytest` 传递参数,可以通过 `pytest.main()` 函数的 `args` 参数来实现。 对于 `pytest.fixture`,这是 `pytest` 框架用于设置测试环境的一个装饰器,它定义了可以被测试函数使用的资源。如果你想在调用 `pytest.main()` 时向 fixture 传递参数,你可以使用 `pytest马克`(Marks)功能来实现。Marks 允许你定义参数化的 fixture 或者为 fixture 添加条件标志。 以下是如何在 `pytest.main()` 使用 `args` 参数向 fixture 传递参数的一个例子: ```python import pytest @pytest.fixture(scope="session") def my_fixture(request): # 这里可以根据请求的参数来改变 fixture 的行为 param_value = getattr(request, 'param', None) # 根据 param_value 进行一些操作... yield param_value if __name__ == "__main__": # 通过命令行参数向 fixture 传递参数 # 例如,你想向 fixture 传递一个特定的参数值 pytest.main(['-m', 'my_fixture=desired_value']) ``` 在这个例子,我们定义了一个名为 `my_fixture` 的 fixture,并通过命令行参数 `my_fixture=desired_value` 来指定要传递给它的参数值。`-m` 选项用于指定一个标记,这里的标记就是 fixture 的名称 `my_fixture`,其后跟随的等号和参数值表示传递给该 fixture 的参数。 请注意,这种通过命令行参数传递值给 fixture 的方式,要求你能够在测试代码相应地处理这些参数,例如通过访问 `request.param` 属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值