Node.js 节点测试:如何在mocha测试用例之后运行bash命令

Node.js 节点测试:如何在mocha测试用例之后运行bash命令,node.js,selenium,testing,mocha.js,Node.js,Selenium,Testing,Mocha.js,我正在使用Mocha和Selenium对我的node web应用程序进行e2e测试。现在的问题是,我想在执行所有测试用例之后拆除数据库 后端使用两个数据库-mongo和postgres。我创建了新的空测试数据库,只用于e2e测试。在测试过程中,一些记录被插入到数据库中。因此,在测试结束时(当调用selenium的mocha测试用例都被执行时),我想拆掉测试数据库并创建新的数据库。这些操作显然是由bash命令完成的 那么,这是一个好的实践吗?如果是的话,我如何实现这一点,比如在js文件中编写bas

我正在使用
Mocha
Selenium
对我的node web应用程序进行e2e测试。现在的问题是,我想在执行所有测试用例之后拆除数据库

后端使用两个数据库-mongo和postgres。我创建了新的空测试数据库,只用于e2e测试。在测试过程中,一些记录被插入到数据库中。因此,在测试结束时(当调用selenium的mocha测试用例都被执行时),我想拆掉测试数据库并创建新的数据库。这些操作显然是由bash命令完成的


那么,这是一个好的实践吗?如果是的话,我如何实现这一点,比如在js文件中编写bash命令(执行mocha测试用例)?

更好的方法是删除表(和集合),并通过迁移重新创建它们,而不是在迁移次数合理的情况下删除整个数据库。这还有一个额外的优点,即验证下一次迁移,如果必须恢复,这将非常方便

您可以在测试开始时运行迁移(向下,然后向上)。我们正在使用,这就是您在
package.json中执行此操作的方法

"scripts": {
    "test": "npm run testdb && <test command>",
    "testdb": "db-migrate reset --env test && db-migrate up --env test"
}
“脚本”:{
“测试”:“npm运行testdb&&”,
“testdb”:“db migrate reset--env test&&db migrate up--env test”
}

您需要使用子进程