Tag: mocha

如何在Travis上使用sudo来运行摩卡

我正尝试在节点中创build原始套接字,但是我在使用sudo运行摩卡时遇到了问题。 在package.json或.travis.yml中调用mocha (有关套接字的权限错误) 尝试在任何一个文件中调用sudo mocha都会导致文件找不到错误。 $ sudo mocha sudo: mocha: command not found The command "sudo mocha" exited with 1. 我有sudo: true

抑制柴中的日志输出

我目前正在使用chai和chai-http来testing节点应用程序的一些HTTP响应。 我chai.request(…)的问题是每次使用chai.request(…)都会将服务器响应状态和时间logging到控制台。 反过来,这使得它成为与xunit摩卡testing输出文件的方式,并导致我的CI解决scheme打破。 testing的一个例子是: chai.request(server) .get('/') .end(function(err, res){ expect(res).to.have.status(200); expect(res.text).to.have.string("Maintenance"); done(); }); 日志: GET / 200 17.807 ms – 305 你会build议如何抑制柴的伐木?

找不到名称“模块”

我想运行一个简单的打字稿文件,我正在导出一个名为sum的函数,如下所示: 我正在编写节点脚本。 function sum(a:number):number{ return a; } module.exports.sum=sum; 我不明白我做错了什么。 我写了这个简单的脚本来理解unit testing用例。 我想如果这个文件运行正常,那么我会去使用摩卡和柴启动基本的testing用例。 以下是我的testing代码: "use strict" // Import chai. let chai = require('chai'), path = require('path'); chai.should(); let SampleTest = require(path.join(__dirname, '..', 'sample.js')); describe('Sampletesting', () => { describe('function sum', function(){ it('should return number', function(){ sum(1).should.equal(1); }) }) });

无服务器AWS Lambda Express应用程序中的摩卡testing

我有一个nodejs应用程序基于expressjs ,我正在testing使用gruntjs作为任务运行者和mochajs作为testing框架。 因此,我编写了组件testing,集成testing和unit testing,这些testing是通过grunt test执行的,或者是在开发过程中直接通过mocha test/component/v1/apiX本地执行的,而在部署过程中作为CIstream程的一部分在testingVM上执行。 现在,当考虑将此应用程序迁移到AWS Lambda(也称为无服务器)时 ,会想到以下有关我的testing和CI过程的问题(请注意,我将使用aws-serverless-express ,因此不必明确写入lambda函数) : 1)如何实现通过HTTP API请求完成的组件/ e2etesting? 2)如何实现只加载和testing应用程序的一部分的集成和unit testing? 3)如果任何一个testing失败,如何整合一个拒绝部署的新的CIstream程? 我认为问题1)大部分已经解决了:从外部testingAWS Lambda的方法有很多。 您可以执行lambda-to-lambdatesting,从testinglambda直接调用您的lambda-to-test,也可以使用来自test-lambda的HTTP通过AWS API Gateway调用lambda-to-test,如此处所述。 你也可以使用serverless-mocha-plugin进行本地lambdatesting(如果使用无服务器的话 )。 这是2)它变得有趣:一旦你的lambda部署它是一个黑匣子。 你不能执行任何没有被明确声明为lambda接口的东西。 我如何保存或重新实施现有的摩卡咖啡单元和集成testing? 3)相同:你如何让你的CI运行所有的部署testing,如果失败,拒绝部署? 这里是我自己的方法:只有在testing环境中,我才能使我的节点应用程序无服务器。 简单地让它作为经典的节点HTTP服务,通过使所有无服务器的变化有条件的取决于环境。 由于几乎没有变化,这应该是可能的和可维护的。 现在我可以像往常一样在本地运行testing,并使用grunt和mocha进行部署。 然后,如果我想确认无服务器版本也可以,我仍然可以进行最后的lambda-to-lambdatesting。

摩卡testing失败,“MongoError:服务器套接字closures”

我的摩卡testing失败: MongoError:服务器XXXX套接字closures 我有一个解决方法如何解决它们: const https = require('https'); const server = https.createServer(..); close() { mongoose.disconnect(); // <——– I will comment this line this.server.close(); }; 我会注释掉mongoose.disconnect(); 和我的testing套件开始工作。 我也想在我的testing后清理。 我的每个testing文件都重新创build服务器,并从头开始。 似乎错误出现了,因为在下一个testing文件执行之前需要有一些“等待”。 我怎样才能纠正这个错误?

摩卡chai-http响应总是返回null

我正在通过mocha chai-httptestingNode.js中的服务器响应。 我得到的回应始终为空 。 但是,当我没有摩卡testing亚军定期运行请求,一切都很好。 这是服务器的代码: var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // var http = require('http'); var urlUtil = require('url'); var queryUtil = require('querystring'); var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // Data object to save all chat logs var server = http.createServer(function(request, […]

每次testing之前都无法获得所需的文件

我尝试将咖啡与咖啡和柴混合使用。 在包含testing的每个文件之前,我想包含以下文件: testing/ _helper.coffee path = require 'path' AppDir = path.resolve("#{__dirname}/../src/app") chai = require('chai') should = chai.should() factories = require('chai-factories') chai.use(factories) 这样我才能访问AppDirvariables。 所以当我想要一个文件时,我不需要指定app目录的完整path。 testing/应用程序/ setup-test.coffee describe 'Setup instance', -> it 'should be a object', -> setup = require "#{AppDir}/setup" setup.should.be.a('object') 我尝试了以下设置: 添加_hellper.coffee摩卡命令行选项,如下所示: ./node_modules/.bin/mocha –require coffee-script –require test/_helper.coffee –compilers coffee:coffee-script –recursive –reporter spec test 所以: ./node_modules/.bin/mocha […]

在asynchronous摩卡testing中超时错误

我正在使用摩卡和应该testing简单的数据库查询,我想运行简单的Moongose模式函数的asynchronoustesting,但我每次都超时错误。 Error: timeout of 15000ms exceeded at null.<anonymous> (/usr/local/lib/node_modules/mocha/lib/runnable.js:165:14) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 我甚至使用this.timeout(15000) ,也尝试了超时15000在摩卡命令,但没有成功,什么超时时间我给我得到这个错误。 只有同步testing通过。 以下是我想testing的testing和function。 我的摩卡testing: – describe('#getFacility()', function () { this.timeout(15000); it('should get facility successfully', function (done) { db.getFacilites(Data.testFacility, function (err, facilities) { if (err) throw err; facilities.Name.should.equal(Data.testFacility.body.Name); done(); }) }); }); 我的资料: – testFacility : { params: { clientId:"51c85c3267b6fc1553000001" } […]

使用Mocha和Chai编写testing用例,以便使用Error

我有一个简单的函数: var moment = require('moment-timezone'); exports.splitIntoDays = function(from,to) { var timeIntervals = []; var interval = {}; var start = moment(from); var end = moment(to); if(start.isAfter(end)) { throw new Error('From date ('+from+') is after To date ('+to+').Enter a valid date range.'); } var initial = start; console.log("Before loop"+initial.format("YYYY/MM/DD-HH:mm:ss")+" "+initial.diff(end,'hours')); while(end.diff(initial,'hours') > 24) { timeIntervals.push({"from" : […]

指定特定testing的节点版本

如果节点版本大于x,是否可以在package.json的test指定运行某个testing? 目前,我正在使用摩卡咖啡和我的脚本如下所示: if [node –version > '0.10'] then mocha –harmony ./tests/koa/*.js else mocha ./tests/*.js 我发现似乎可以使用if语句,但是使用上面的语句只是给了我一个错误:– –version was unexpected at this time.