跨测试运行管理外部进程的pytest插件
pytest-xprocess的Python项目详细描述
实验性的“py.test``管理进程的插件
跨测试运行。
您可以使用它来启动并预先配置特定于测试的数据库(postgres、couchdb,…)。
另外还有两个新的命令行选项:
--xkill终止所有外部进程
--xshow显示当前运行的进程和日志文件`` xprocess`` fixture internal::
conftest.py的内容
import pytest
from xprocess import processstarter
@pytest.fixture
def myserver(xprocess):
class starter(processstarter):
pattern=“pattern”
args=['command','arg1','arg2']
logfile=xprocess.sure(“myserver”,starter)
conn=创建到服务器的连接或url/端口信息
返回conn
为该进程创建的工作目录。如果服务器尚未启动:
-使用“args”来调用一个新的子进程。
-在返回之前,在日志文件中等待“pattern”返回。
因此,它应该与服务器的一个状态相匹配,在该状态下,它可以回答查询。
-`env``可以定义为自定义环境调用新的子流程。要继承主测试进程
环境,请将``env``设置为默认值(``none``)。
-stdout被重定向到一个日志文件,如果服务器已经在运行,则返回的日志文件指向匹配后的
行。
processstarter的方法。例如,要扩展搜索
以获取启动信息的行数:
Class Starter(processStarter):
pattern='进程开始于。*'
args=['command','arg1']
def filter_行(self,lines):
return itertools.islice(lines,500)
override:方法:`processstarter.wait`.
有关详细信息,请参见:类:`xprocess.processstarter`接口。
请注意,插件需要保留进程ID和日志文件信息。它在包含“pytest.ini”或“setup.py”文件的目录
的子目录中执行此操作。
跨测试运行。
您可以使用它来启动并预先配置特定于测试的数据库(postgres、couchdb,…)。
另外还有两个新的命令行选项:
--xkill终止所有外部进程
--xshow显示当前运行的进程和日志文件`` xprocess`` fixture internal::
conftest.py的内容
import pytest
from xprocess import processstarter
@pytest.fixture
def myserver(xprocess):
class starter(processstarter):
pattern=“pattern”
args=['command','arg1','arg2']
logfile=xprocess.sure(“myserver”,starter)
conn=创建到服务器的连接或url/端口信息
返回conn
为该进程创建的工作目录。如果服务器尚未启动:
-使用“args”来调用一个新的子进程。
-在返回之前,在日志文件中等待“pattern”返回。
因此,它应该与服务器的一个状态相匹配,在该状态下,它可以回答查询。
-`env``可以定义为自定义环境调用新的子流程。要继承主测试进程
环境,请将``env``设置为默认值(``none``)。
-stdout被重定向到一个日志文件,如果服务器已经在运行,则返回的日志文件指向匹配后的
行。
processstarter的方法。例如,要扩展搜索
以获取启动信息的行数:
Class Starter(processStarter):
pattern='进程开始于。*'
args=['command','arg1']
def filter_行(self,lines):
return itertools.islice(lines,500)
override:方法:`processstarter.wait`.
有关详细信息,请参见:类:`xprocess.processstarter`接口。
请注意,插件需要保留进程ID和日志文件信息。它在包含“pytest.ini”或“setup.py”文件的目录
的子目录中执行此操作。