我正在创建一个测试框架的数百个脚本。每一个脚本都需要打开一个连接到我们正在测试的设备,运行许多任务并关闭。正在通过固定装置创建和关闭连接。还想添加一个新的连接需要为每一个单独的脚本运行(即模块级,而不是作用域或函数级)。在
我有一个固定装置在同一个文件中的任务。像这样。在
我的_测试.py
...
@pytest.fixture(scope='module')
def setup(request):
global connection
with target.Connect() as connection:
yield connection
def teardown():
connection.close
request.addfinalizer(teardown)
@pytest.mark.usefixtures("setup")
def test_query_device_info():
global connection
connection.write('echo $PATH')
connection.write('echo $HOME')
...
由于我有数百个测试,我不想为每个文件复制相同的代码,所以我需要一个可以被每个测试使用的通用夹具。我试着把这个装置加到conftest.py正在创建连接,但当它到达连接.写入命令。在
conftest.py
^{pr2}$我的_测试.py
...
@pytest.mark.usefixtures("setup")
def test_query_device_info():
global connection
connection.write('echo $PATH')
如何将这个fixture放在所有测试都可以访问的公共位置,并正确地创建一个可以在脚本中使用的连接?在
请注意,这些是通过pyCharm IDE执行的,而不是直接在命令行上执行的。在
该框架被修改为通过使用自动控制上下文的}方法的类来完成连接。在
__enter__
和{相关问题 更多 >
编程相关推荐