2017-07-19 86 views
0

我正在使用MochaSelenium为我的节点Web应用程序执行e2e测试。现在的问题是,我想在执行所有测试用例之后拆除数据库。节点测试:如何在摩卡测试用例后运行bash命令

后端使用两个数据库 - mongo和postgres。我为每个测试都创建了新的空测试数据库。在测试过程中,一些记录被插入到数据库中。因此,在测试结束时(当调用硒的摩卡测试用例都被执行时),我想拆除测试数据库并创建新的数据库。这些操作显然是由bash命令完成的。所以,这是一个很好的做法,如果是这样,我该如何实现这一点,比如在js文件(执行摩卡测试用例)中编写bash命令?

+0

你需要使用child_process – Darkrum

回答

-1

如果您有合理数量的迁移,更好的方法是删除表(和集合)并通过迁移重新创建它们,而不是删除整个数据库。这有一个额外的优势,验证你的向下迁移,如果你不得不恢复,可以很方便。

您可以在测试开始时运行迁移(向下然后向上)。我们正在使用db-migrate,这是你如何做到这一点package.json

"scripts": { 
    "test": "npm run testdb && <test command>", 
    "testdb": "db-migrate reset --env test && db-migrate up --env test" 
}