我正在使用Mocha
和Selenium
为我的节点网络应用进行e2e测试。现在问题是,我想在执行所有测试用例后拆除数据库。
Backend使用两个数据库 - mongo和postgres。我创建了每个新的空测试数据库,仅用于e2e测试。在测试期间,一些记录被插入到数据库中。因此,在测试结束时(当调用selenium的mocha测试用例全部执行时),我想拆除测试数据库并创建新数据库。这些操作显然是由bash命令完成的。
那么,这是一个很好的做法,如果是这样,我怎样才能实现这一点,比如在js文件中执行bash命令(执行mocha测试用例)?
答案 0 :(得分:-1)
更好的方法是删除表(和集合)并通过迁移重新创建它们,而不是在有合理数量的迁移时删除整个数据库。这有一个额外的优点,即验证您的向下迁移,如果您不得不还原,这可能很方便。
您可以在测试开始时运行迁移(向下,然后向上)。我们正在使用db-migrate,您可以在package.json
"scripts": {
"test": "npm run testdb && <test command>",
"testdb": "db-migrate reset --env test && db-migrate up --env test"
}