Tag: 摩卡

在整个摩卡testing之前运行asynchronous代码

我正在寻找一种方法来在整个摩卡testing之前运行asynchronous代码。 下面是一个testing的例子,它使用了一系列参数和期望值,并循环了这个数组中的所有项来产生函数断言。 var assert = require('assert') /* global describe, it*/ var fn = function (value) { return value + ' ' + 'pancake' } var tests = [ { 'arg': 'kitty', 'expect': 'kitty pancake' }, { 'arg': 'doggy', 'expect': 'doggy pancake' }, ] describe('example', function () { tests.forEach(function (test) { it('should return ' + test.expect, […]

在Visual Studio Team Services Build中启动摩卡testing

我不能为我的生活find文档或教程开始在Visual Studio在线构build摩卡咖啡unit testing。 我有在VSO中构build并正在部署到Azure的node.js应用程序。 这一切都奇妙的作品。 我似乎无法弄清楚如何通过构build过程启动spec文件。 这是怎么做的? 是否有文档可用,我失踪了。

找不到模块'ts-node / register'

我想用摩卡来testing我的TypeScript / Angular2项目。 我尝试使用ts-node,如下所述: npm install -g ts-node 但运行时 mocha –require ts-node/register -t 10000 ./**/*.unit.ts 我得到一个错误 找不到模块'ts-node / register' 我在这里错过了什么?

摩卡'每个挂钩'消息之前红色。 我怎么知道具体是什么错误?

在失败的testing之前,我有以下消息: 1) "before each" hook 这是整个信息 。 这是红色的,这让我觉得在每个钩子之前有什么问题,但我不确定错误是什么。 它可能是: 超时失败 一个失败的断言 抛出错误 我怎么知道错误是什么? beforeEach()通常执行得非常好。

在node.js中testing响应?

我刚刚下载了mocha.js并用expect.js运行了一些基本的testing,以确保它正常工作。 但是在我的node应用程序中testing特定url的响应呢? 也就是说,我如何testing我从导航到/users得到什么答案? 使用mocha.js的前身Expresso,我可以做assert.response(server, req, res|fn[, msg|fn])并testing响应。

如何configurationMocha的TeamCity构build?

我有一个项目,我正在build立通过CI的团队。 该项目本身是一个nodejs应用程序,它包含了用mocha写的testing,我们通过jscoverage覆盖。 在构buildconfiguration我设置我有3个build立步骤发生在签入。 调用jscoverage.exe对我覆盖的项目中的文件夹。 呼叫摩卡运行testing从步骤1 jscovered文件并输出到html-cov记者 将生成的coverage.html报告移到公共Web目录中以供稍后浏览。 生成目前失败的步骤2:摩卡“不存在目录C:\ NodeJS \ MeasuresAPI 我已经确保在系统环境path中包含mocha和所有节点包,并且能够在命令提示符下访问它们,但TeamCity似乎看不到它们。 对于jscoverage.exe,我不得不包括完整的path。 用摩卡,我尝试了包括我的节点全局安装的path摩卡安装的path,但它给了我一个错误: “.. \ node_modules \ mocha \ bin \ mocha”(在目录“C:\ NodeJS \ MeasuresAPI”中):CreateProcess错误= 193,%1不是有效的Win32应用程序 任何人有任何Teamcity和摩卡的经验,以及如何让他们打好? 或任何想法与一个nodejs,摩卡堆栈的持续集成?

试图让摩卡看我的项目时,“没有这样的模块”错误

我试图让摩卡看我的项目进行testing,并不断运行testing,但是当我使用-w标志,我得到一个错误。 这里的testing执行得很好: C:\Foo>mocha . ? 1 tests complete (3ms) 这里用-w C:\Foo>mocha -w node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: No such module at EventEmitter.<anonymous> (node.js:392:27) at Object.<anonymous> (C:\Users\Greg\AppData\Roaming\npm\node_modules\mocha\bin\_mocha:203:11) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40) 我在全球npm install […]

在NodeJS中testing与数据库相关的代码

使用PostgreSQL。 我正在尝试为API设置适当的testing套件。 到目前为止,它的工作原理是直接在主数据库上完成testing。 然后我必须删除我的testing创build的一切,或在这种情况下编辑。 我知道这是一件坏事(因为我可以忘记恢复一个变化,或弄乱序列)。 所以我想创build一个具有相同结构和基础数据的testing数据库,然后删除它。 在这种情况下,这种方法是否合适? 如果我想这样做,我该怎么办? 在NodeJS中有执行SQL脚本的方法吗? 我尝试了一个shell脚本,但到目前为止,这个权限已经完全混乱了,所以我认为直接使用NodeJS会更容易一些。 我正在使用Mocha进行testing。

为什么我会得到“错误:分辨率方法超标”?

升级后,摩卡甚至不能运行简单的testing,这里是代码 const assert = require('assert'); it('should complete this test', function (done) { return new Promise(function (resolve) { assert.ok(true); resolve(); }) .then(done); }); 我从这里拿这个代码 我明白它现在抛出一个exceptionError: Resolution method is overspecified. Specify a callback * or * return a Promise; not both. Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both. […]

require.main.require工作,但不在摩卡testing

我写了一个全局函数来要求我的应用程序/框架的某些文件: global.coRequireModel = function(name) { // CRASH happens here return require.main.require('./api/_co' + name + '/_co' + name + '.model'); } 这个模块在/ components / coGlobalFunctions中。 这是我的主要应用程序app.js需要这样的: require('./components/coGlobalFunctions'); 然后在其他模块中使用框架中的“东西”,我使用: var baseScheme = coRequireModel('Base'); 这工作,但不是在摩卡testing,给我一个“错误:无法find模块”在require.main.require调用之前。 看来testing来自另一个源文件夹。 但是我认为require.main.require会把相对连接模块的方面拿掉。 编辑: 生活在api / user中的示例testing文件: var should = require('should'); var app = require('../../app'); var User = require('./user.model'); …