我正在手动测试一些访问MongoDB的Node.js端点。 而且我正在使用运行程序在开发模式(https://www.npmjs.com/package/run-rs)中设置副本集
我的流程如下:
然后在一个单独的终端窗口中,npm开始运行我的Node.js应用程序并连接到my_db。 在create-db.js中,我设置了许多集合。像这样:
db.categorie.insert({"categories":["all","cat","dog","cow","mus"]});
var users = [{
"_id" : ObjectId("5b7b99477943f109fba8b128"),
"admin" : false,
"log" : false,
"city" : "",
"state" : "",
"country" : "",
"active" : true,
"forgot" : false,
"email" : "some+user@gmail.com",
"hash" : "88409d4e8754af084ccb8554934e979bcd7c6a7f2532915b225a47b97de9b80a70c2c025e5610d9cdc15afebdd4efe26f9df586ee3b57763d196c96fb5dff96a1e3cfa80acf0bd232acb5b8eb7a2e9cf06a48dfd9b8cfd16ebd6fc33a1d7c5a6f66fb1c1efa45c570acb16e08c1867c8a58de40d4471433aa025de46cc21d07f52b68e0494f24f41efc2234c97070a943fb149640ae9e434de0df0154e0893718d3177c9bde61169cac2ee3bf265ffa99ca8338602d5be8c3e18aa7df99ba3cb38ca00bc17e85d680f92c6e3f84bb0cd63c062931b5e90793e9774c1f7c58a4312562e24752c366d5459ff9214b57309ac8e16357fee109cc1d397d48d1f1a6438d19226ffb0c42a175a0043a8a6405f85290657b1ce75504585123b0af9c1de01e3edc2d0538ab2246900e3a811c12ece1b2495e2d532a4a01f5e5ebc1ebe25853147071cfc394f9161d643b518327c5be777d5dabb701485a919533d972a046c4b86af6c3edf427ea73ac8d7a5cf19cf236ec9849984f4c1029a12c7ee0bc655125b9558eba223e6768a36c4bbbefdcda6f218561446bbc86efb41c4ca5755e89d3a4a9f3e7f480dea158e15687d6b1838356cc9ce37b86827283bb4a596681a4f691c5ab812769b753e7ece29d4dd81c90e98e3b8cf0261d88ecfc37c8d32db7efea99a84d2689d577cd20130b4c7f93493bd7c88d2a388c1de4d0d4c41d1",
"salt" : "9b3a7884e00077a125e7cbdc9dddc09236804cee65gb31467910755aeb2759d0",
"__v" : 0
},
{
...
},
{
...
}];
db.users.insertMany(users);
...等等,还有许多其他收藏集。
数据库设置非常庞大,我想让事情井井有条。
事实是,我正在手动运行run-rs
,而且还从mongo shell加载了脚本。我不知道如何从Mocha做到这一点-即使这不是最佳实践。
答案 0 :(得分:0)
如果要在测试一组测试用例之前每次都执行此操作,则应使用before
钩子,您可以在其中设置测试所需的数据库/所有集合等。然后进行测试,并在after
钩中进行清理。
因此,假设您在run-rs
之后,之前的钩子中运行手动脚本,然后进行测试。
答案 1 :(得分:0)
如果要运行命令,则可以始终使用exec()并将其作为测试之前的设置过程。如果要始终在挂钩中运行它,请将其作为函数运行。
exec('dir', (err, stdout, stderr) => {
if (err) {
console.error(`exec error: ${err}`);
return;
}
console.log(`Number of files ${stdout}`);
});