具体来说,我尝试使用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)
我计划在test_cmd
完成后使用PID来终止进程,但是我还没有走到那么远。在
运行test_cmd
会导致一个错误,提示db_cmd
已退出并且MongoDB不再可用:
但是,在运行fabric之前手动运行mongod
,会导致test_cmd
正常运行并与MongoDB交互。在
我怀疑我只是不明白os.spawnl
。注意,这段代码需要在Windows/Linux和OSX上运行,所以我认为我在使用os.spawnxxx
方法方面受到了一定的限制。我也很想知道是否有一种织物方法可以实现这一点。在
我成功地使用了:
可能,您需要使用subprocess模块来实现这一点。在
要在后台运行mongo,请使用:
^{pr2}$要在测试后杀死它,请先使用我编写的命令。在
command-是包含mongo start代码的字符串,例如:
对我来说很好。如果你对代码有问题,请告诉我。在
您也可以在直接使用作业和陷阱的bash中执行此操作:
这是在做什么:
因此,这将在完成时设置并降低mongod实例的皮重,即使是在一个术语信号或异常情况下。在
相关问题 更多 >
编程相关推荐