具体来说,我试图使用fabric来运行一些依赖MongoDB存在的测试。运行一个后台进程,然后在中间处理后终止它
我有以下代码:
db_cmd = 'mongod'
test_cmd = 'istanbul cover node_modules/mocha/bin/_mocha -- -R spec'
pid = os.spawnl(os.P_NOWAIT, db_cmd)
with shell_env(NODE_ENV='test'):
local(test_cmd)
我打算使用PID后test_cmd
已经完成,但是我还没有得到那么远,杀死进程。
的test_cmd
导致一个错误提示db_cmd
已退出和正在运行的MongoDB是不再可用:
Uncaught Error: failed to connect to [localhost:27017]
运行织物之前手动然而运行mongod
导致test_cmd
运行细并用MongoDB的交互。我想我只是不理解os.spawnl
。请注意,此代码需要在Windows/Linux和OSX上运行,因此我认为我可以使用哪些os.spawnxxx
方法受到某种限制。我也很想知道是否还有一种结构方法可以实现这一点。
完美,谢谢! – DanH