2017-08-07 63 views
0

我读了所有相关的帖子mocha "describe" is not defined但他们都不是适合我的情况。摩卡“形容”没有定义

我用流星和npm

安装"mocha": "^3.5.0"包我在流星根目录下创建一个文件夹/test。 和测试mochatest.js

var assert = require("assert"); // node.js core module 

describe('Array', function(){ 
    describe('#indexOf()', function(){ 
    it('should return -1 when the value is not present', function(){ 
     assert.equal(-1, [1,2,3].indexOf(4)); // 4 is not present in this array so indexOf returns -1 
    }) 
    }) 
}); 

当运行摩卡测试通过的样品。

但是,当我开始我的正常的服务器我得到:ReferenceError: describe is not defined

.meteor/packages/meteor-tool/.1.3.5_1.1wj76e8++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280 throw(ex); ^ ReferenceError: describe is not defined at meteorInstall.test.mochatest.js (test/mochatest.js:3:1) at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:153:1) at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:82:1) at project-i18n.js:6:1 at .meteor/local/build/programs/server/boot.js:297:10 at Array.forEach (native) at Function._.each._.forEach (.meteor/packages/meteor-tool/.1.3.5_1.1wj76e8++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11) at .meteor/local/build/programs/server/boot.js:133:5

我有流星要运行在启动测试,但无法找到摩卡东西的感觉。

那该怎么办?

+0

你是如何运行测试的情况下? –

+0

我运行它们只需在应用程序根目录输入'mocha' dir – Gobliins

+0

我在设置测试套件时就开始了,所以我只有这个测试atm。 – Gobliins

回答

0

貌似服务器运行时的测试文件以某种方式调用。它不应该包含在服务器代码的任何地方。 如果你不知道发生了什么,你可以尝试调试服务器,并在“describe”行放置一个断点 - 试着看看你是如何到达那里的。

0

您需要将/test文件夹重命名为/tests

从官方Meteor Testing Guide

流星构建工具和流星测试命令忽略位于任何tests/目录中的任何文件 。这允许你在这个 目录中进行测试,你可以使用Meteor的 内置测试工具以外的测试运行器运行该目录,但仍然没有在你的 应用程序中加载这些文件。

你也可以考虑像扩展重命名你的测试文件:

*.test[s].*,或*.spec[s].* - 所以,你的文件可以被命名为mocha.test.js

这样的文件是由流星构建工具以及忽略。