Python 仅为一个测试操作pytest命令行参数
是否可以通过fixture或任何其他方法设置pytest的-s命令行参数? 我想要实现的是为我的一个测试启用-s(capture=no)选项 我正在考虑一种在测试中或通过夹具操纵此选项的方法 下面给出一个需要禁用捕获的测试示例,这是一个非常简单的测试:Python 仅为一个测试操作pytest命令行参数,python,fabric,pytest,Python,Fabric,Pytest,是否可以通过fixture或任何其他方法设置pytest的-s命令行参数? 我想要实现的是为我的一个测试启用-s(capture=no)选项 我正在考虑一种在测试中或通过夹具操纵此选项的方法 下面给出一个需要禁用捕获的测试示例,这是一个非常简单的测试: from fabric.state import env from fabric.operations import run class TestCapture: def test_fabric(self): env.
from fabric.state import env
from fabric.operations import run
class TestCapture:
def test_fabric(self):
env.user = '<ssh_username>'
env.password = '<ssh_password>'
env.host_string = '<hostname>'
who = run('whoami').stdout # use fabric command run to invoke whoami on <hostname>
assert who == '<username>'
来自fabric.state导入环境
从fabric.operations导入运行
类TestCapture:
def测试_结构(自):
环境用户=“”
环境密码=“”
env.host_字符串=“”
who=run('whoami')。stdout#使用fabric命令run在
断言谁=“”
在此测试中,fabric用于通过ssh登录到另一台机器上,并运行whoami命令。结果应该是登录用户的名称
如果启用了pytest的捕获,则此测试将失败 可以使用
request.config.pluginmanager.getplugin('capturemanager').suspendcapture()
和.resumecapture()
来处理此问题
但这是一个非常罕见的用例,通常不需要它。目前我能想到的两个合理的例子是pdb和pytest超时插件。因此,稍微解释一下您的用例可能会有所帮助。我有一些使用fabric框架的代码,我想对其进行测试。如果捕获了输出,则此测试失败。但我不想禁用所有测试的输出捕获。我也不知道如何使用您提供的代码。你能举个例子吗?我在问题中加了这个例子