2017-08-07 35 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

這樣的文件是由流星構建工具以及忽略。