具體來說,我試圖使用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