2014-07-18 36 views
0

拼接在一起的東西掉的網站我想這接線,一飲而盡運行寫成的CoffeeScript摩卡測試

var gulp = require('gulp'); 
var gutil = require('gulp-util'); 
var coffee = require('gulp-coffee'); 
var mocha = require('gulp-mocha'); 

gulp.task('test', function() { 
    return gulp.src(['tests/*.coffee'], { read: false }) 
      .pipe(coffee({bare: true}).on('error', gutil.log)) 
      .pipe(mocha({ 
       reporter: 'spec', 
       globals: { 
        should: require('should') 
       } 
      })); 
}); 

這總是給我一個錯誤在我的測試/ test.coffee文件

的第一線
require 'should' 
describe "something", -> 
    it "fails", -> true.should.equal false 

此錯誤:

(function (exports, require, module, __filename, __dirname) { require 'should' 
                    ^^^^^^^^ 

此外,它看起來不正確的一個任務來完成。每個人都覺得它應該是一個依賴於前一個輸出的任務。

我該如何讓所有這些作品聚集在一起?

回答

3

我有幾乎相同的配置,一飲而盡作爲你的,我做了什麼來解決這個問題是:

npm install --save-dev should 

--save-dev部分是可選的,但我喜歡我的依賴關係存儲到package.json文件,便於攜帶。

編輯:

我注意到,你第一次就管道咖啡。如果使用Gulpfile.coffee(你猜對了,Gulpfile寫在CoffeeScript中),你不需要使用這個,摩卡會運行它的罰款爲CoffeeScript文件。

這是我test taskGulpfile.coffee

gulp.task 'test', - > 
    gulp.src(testSources, 
     read: false 
    ) 
    .pipe(mocha(
     reporter: 'spec' 
     globals: 
     should: require('should') 
    )) 

要獲得咕嘟咕嘟解析Gulpfile.coffee,它保存爲Gulpfile.js

require('coffee-script/register'); 
require('./Gulpfile.coffee'); 

編輯2:

我已經注意到那JavaScript版本不按預期工作。

我的只有建議使用Gulpfile寫在CoffeeScript,這樣它的工作正常。我可以分享我的速度爲您加速,但只需不到5分鐘即可手動​​將其轉換爲CoffeeScript,或者使用Js2coffee更快。或者看看Gulpfile.js(不是我的工作)。


或者使用Chai和使用下面的代碼:

chai = require 'chai' 
chai.should() # add should to Object.prototype 

describe "Test", -> 
    it "should pass", -> 
     true.should.equal true 
+0

那麼如何啓動gulpfile.coffee? gulp命令不會提取它。 –

+0

我已經更新了答案,以描述如何運行'Gulpfile.coffee',如果它不適合你。 –

+0

非常感謝。我現在運行了。任何想法,爲什麼從咖啡文件中使用摩卡,但是來自js卻不行?這似乎是一個簡單的函數調用 –

0

所有你需要做的運行CoffeeScript的規格是npm install coffee-script。 不需要在coffeescript中有一個gulpfile。

如果您coffeesctipt安裝它足有測試任務像這樣在你的gulpfile:

gulp.task('test', function(){ 
    return gulp.src('./specs/**/*.spec.coffee') 
    .pipe(mocha({reporter:'nyan'})); 
}); 

所以,沒必要管*通過一飲而盡,摩卡.coffee文件

+1

我知道如何使用coffeescript(並坦率地認爲,大量的時間吞噬/ grunt在節點上過度使用),但這不是問題的答案。事實上,它只是說明如何在本地安裝咖啡腳本包。這實際上不會運行摩卡規格。 –

+0

你很可能誤解了我的意思是安裝coffeescript。請閱讀我更新的答案。 –