摩卡“描述”没有定义

时间:2017-08-07 09:10:58

标签: javascript node.js meteor mocha

我阅读了所有相关的mocha "describe" is not defined帖子,但这些帖子似乎都不适合我的情况。

我使用meteor并按"mocha": "^3.5.0"

安装了npm

我在meteor根目录中创建了一个/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
    })
  })
});

当我运行mocha时,测试通过。

但是,当我启动我的普通服务器时,我得到: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

我有一种感觉,流星想要在启动时运行测试,但找不到摩卡的东西。

那该怎么办?

2 个答案:

答案 0 :(得分:0)

看起来在服务器运行时以某种方式调用了测试文件。它不应包含在服务器代码中的任何位置。 如果你无法弄清楚发生了什么,你可以尝试调试服务器并在“描述”行放置一个断点 - 试着看看你是如何到达那里的。

答案 1 :(得分:0)

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

来自官方Meteor Testing Guide

  

Meteor构建工具和meteor test命令会忽略所有文件   位于任何tests/目录中。这允许您在此进行测试   您可以使用Meteor之外的测试运行器运行的目录   内置的测试工具,仍然没有在您的文件中加载这些文件   应用

您还可以考虑使用以下扩展名重命名测试文件:

*.test[s].**.spec[s].* - 因此您的文件可以命名为mocha.test.js

Meteor构建工具也会忽略这些文件。