用于管理用于测试的守护程序的工具和装置套件
pifpaf的Python项目详细描述
pifpaf是一套fixtures和命令行工具,允许启动 停止守护进程以快速丢弃使用。当 需要这些守护进程运行integration testing。它最初是从 它的前苏联。
支持的守护进程
PIFPAF当前支持:
用法
要使用pifpaf,只需调用 需要。它将设置临时环境并导出一些环境 变量供您访问:
$ pifpaf run postgresql psql template1 Expanded display is used automatically. Line style is unicode. SET psql (9.4.5) Type "help" for help. template1=# \l List of databases Name │ Owner │ Encoding │ Collate │ Ctype │ Access privileges ───────────┼───────┼──────────┼─────────────┼─────────────┼─────────────────── postgres │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ template0 │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ =c/jd ↵ │ │ │ │ │ jd=CTc/jd template1 │ jd │ UTF8 │ en_US.UTF-8 │ en_US.UTF-8 │ =c/jd ↵ │ │ │ │ │ jd=CTc/jd (3 rows) template1=# \q $
您也可以在不提供命令行的情况下运行它:
$ eval `pifpaf run memcached` $ env | grep PIFPAF PIFPAF_PID=13387 PIFPAF_DAEMON=memcached PIFPAF_URL=memcached://localhost:11212 PIFPAF_MEMCACHED_URL=memcached://localhost:11212 $ pifpaf_stop
杀死pid包含在$pifpaf\u pid中的守护进程将停止 启动守护进程并清理测试环境。你可以自己杀或者用 定义的函数pifpaf_stop。
环境变量
pifpaf导出几个环境变量:
- pifpaf_守护进程其中包含启动的守护进程的名称
- pifpaf_url其中包含守护进程的url
- pifpaf_pidpifpaf守护进程的pid
- pifpaf\$daemon\*变量,其中包含特定于守护进程的变量, 例如端口、数据库名称、url等。
一次运行多个程序
pifpaf提供了更改其环境变量前缀的能力, 允许您嵌套多个pifpaf实例,从而运行多个 一次守护进程:
$ pifpaf --env-prefix STORAGE run memcached -- pifpaf --env-prefix INDEX run postgresql $SHELL $ env | grep STORAGE STORAGE_DATA=/var/folders/7k/pwdhb_mj2cv4zyr0kyrlzjx40000gq/T/tmpVreJ0J STORAGE_MEMCACHED_PORT=11212 STORAGE_URL=memcached://localhost:11212 STORAGE_PID=71019 STORAGE_DAEMON=memcached STORAGE_MEMCACHED_URL=memcached://localhost:11212 $ env | grep INDEX INDEX_DATA=/var/folders/7k/pwdhb_mj2cv4zyr0kyrlzjx40000gq/T/tmphAG7tf INDEX_URL=postgresql://localhost/postgres?host=/var/folders/7k/pwdhb_mj2cv4zyr0kyrlzjx40000gq/T/tmphAG7tf&port=9824 INDEX_PID=71021 INDEX_DAEMON=postgresql INDEX_POSTGRESQL_URL=postgresql://localhost/postgres?host=/var/folders/7k/pwdhb_mj2cv4zyr0kyrlzjx40000gq/T/tmphAG7tf&port=9824 $ echo $PIFPAF_URLS memcached://localhost:11212;postgresql://localhost/postgres?host=/var/folders/7k/pwdhb_mj2cv4zyr0kyrlzjx40000gq/T/tmpQ2BWFH&port=9824
pifpaf_url环境变量将包含所有url的列表 由PIFPAF检测和设置。您可以用 –全局url变量选项。
如何在发动机罩下工作
pifpaf将使用当前posix用户启动所请求的守护进程。数据文件 的守护进程将被放置在临时目录中。全系统 可能存在的配置守护进程根本不被触摸。
pifpaf希望在您的系统上找到守护程序二进制文件(如mysqlcite>,mysqld, pg_config,pg_ctl,rabbitmq server等)。
清理python fixture或终止pifpaf时,守护进程是 已停止并删除临时目录。