所以我正在开发一个express.js应用程序,其中我有一个Mongoose模型用户。我编写了一个测试文件(使用Mocha)来测试save()函数,但我所有的测试执行时间太长,最终超时。这是我遇到的错误:Testing-Server-User-ModelTestingsave()1)shouldbeabletosavewithoutproblems2)shouldfailtosaveanexisitnguseragain3)shouldshouldanerrorwhentrytosavewithemptyemail4)shouldgiveanerrorwhentrytosavewith
根据AlexeyB.的评论,我修改了我的测试代码,并从我的测试代码中找到了导致相同错误的情况。当我尝试测试单个测试文件时,它运行良好。但是,如果我尝试同时测试多个测试文件,它就会损坏。常见的错误消息是Error:Tryingtoopenunclosedconnection.。看来我的数据库连接代码有一些问题。这是我修改后的代码。utils.js:varmongoose=require('mongoose');module.exports=function(models){returnfunction(done){for(variinmodels){models[i].remove({}
我的mocha测试失败了:MongoError:serverXXXXsocketsclosed我有解决方法:consthttps=require('https');constserver=https.createServer(..);close(){mongoose.disconnect();//我会注释掉mongoose.disconnect();行,然后我的测试套件开始工作。我也想在测试后进行清理。我的每个测试文件都重新创建服务器并从头开始。似乎出现错误是因为在执行下一个测试文件之前需要一些“等待”。我该如何纠正这个错误? 最佳答案
我正在使用Mocha、Mongoose和MongoDB。我的目标只是围绕创建帐户进行测试。我有以下代码:require("./../../config/config");varmongoose=require("mongoose");mongoose.connect(process.env.MONGODB_URI);constexpect=require("expect");var{Account}=require("./../../models/account");describe("AccountCreation",()=>{it("shouldsuccessfullycreate
我正在使用mocha-mongoose在测试之间自动清除mongo。在文档中,它说在您的规范文件中或在您的规范助手中全局需要该模块。按照规范执行此操作效果很好,但我想从mocha.opts执行此操作以保持我的代码干燥。用mocha.opts要求它不起作用。规范之间未清除Mongomocha.opts:--require./test/common.js--reporterspec--uibdd--recursive--colors--timeout60000--slow300通用.js:require('mocha-mongoose')('mongodb://your-mongodb-u
Seedebuggeroutputherevarexpect=require('chai').expectvarUser=require('../../app/models/index.js').Userdescribe('ModelUser',function(){it('addauser',function(done){varuser=newUser({uname:'cx',password:'cx'})user.save()//Model#save()returnPromise.then(function(user,effectNum){done()//successstate}
我一直收到超时错误,它一直告诉我确认我已经调用了done(),即使我已经调用了。constmocha=require('mocha');constassert=require('assert');constStudent=require('../models/student.js');describe('CRUDTests',function(){it('CreateRecord',function(done){vars=newStudent({name:"Yash"});s.save().then(function(){assert(s.isNew===false);done();}
我一直在到处寻找这个。有些人似乎是这样mongoose.connect('mongodb://localhost/test');然后继续他们的describe调用。那么异步等待呢?vardb=mongoose.connection;db.on('error',console.error.bind(console,'connectionerror:'));db.once('open',function(callback){//yay!});我应该如何在Mocha测试中使用此连接?我应该将所有测试都放在回调中吗?我应该将等待连接的代码包装在单元测试中吗?连接是否会在describe和it之
我已经在这个网站和网络上搜索了一段时间,但我找不到解决这个问题的方法。我正在尝试测试我的API的REST功能,但PUT测试似乎从未起作用。每次在mocha中运行测试时,我都会收到错误“Uncaughtassertionerror:expected[]toequal{objectData}”,其中objectData是我尝试发布的对象(名为couponTwo)的json表示形式。我感觉问题出在beforeEach函数上,因为它会在每次测试前清除数据库,而许多其他测试需要执行此操作才能正确运行。这是测试代码:varconfig=require('../config/config');var
我正在使用Mongoose在Node.js、Express和MongoDB中构建网络应用程序。当我用Grunt运行我的Mocha测试时,我想有一个专用的数据库,这样我就不会弄乱我用于开发的数据库。我该怎么做?我目前在/config/db.js的文件中有我的开发数据库配置信息,该文件在启动时加载并连接到我的app.js文件中的开发数据库。我如何让在Grunt任务中运行的Mocha测试在运行Grunt时动态使用测试数据库?我试图在我的Mocha测试文件中的before()Hook中与我的测试文件中的开发数据库断开连接,然后连接到测试数据库。但是,它继续使用开发数据库。示例如下:before