首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接起来,运行用coffeescript编写的mocha测试

连接起来,运行用coffeescript编写的mocha测试
EN

Stack Overflow用户
提问于 2014-07-18 04:19:36
回答 2查看 4.6K关注 0票数 0

把网站上的东西拼凑在一起我试过这个

代码语言:javascript
复制
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')
                }
            }));
});

这总是给我测试/测试文件的第一行错误。

代码语言:javascript
复制
require 'should'
describe "something", ->
    it "fails", -> true.should.equal false

此错误:

代码语言:javascript
复制
(function (exports, require, module, __filename, __dirname) { require 'should'
                                                                  ^^^^^^^^

此外,在一项任务中这样做似乎是不对的。每个人都觉得这应该是一个依赖于前一个输出的任务。

我怎样才能把所有这些东西组合在一起?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-18 06:22:44

我和你的配置几乎一样,我做了什么来修复它:

代码语言:javascript
复制
npm install --save-dev should

--save-dev部分是可选的,但为了便于移植,我喜欢将依赖项存储到package.json文件中。

编辑:

我注意到你先把它弄成咖啡。如果使用Gulpfile.coffee (您猜到了,Gulpfile是用CoffeeScript编写的),则不需要使用它,mocha将作为CoffeeScript文件运行。

这是我的test task in Gulpfile.coffee

代码语言:javascript
复制
gulp.task 'test', - >
    gulp.src(testSources,
        read: false
    )
    .pipe(mocha(
        reporter: 'spec'
        globals:
        should: require('should')
    ))

若要让Gulp解析Gulpfile.coffee,请将其保存为Gulpfile.coffee

代码语言:javascript
复制
require('coffee-script/register');
require('./Gulpfile.coffee');

编辑2:

我注意到JavaScript版本并没有像预期的那样工作。

我唯一的建议是使用用Gulpfile编写的CoffeeScript,这样可以很好地工作。我可以与您共享我的文件,以加快速度,但手动将其转换为CoffeeScript所需的时间不到5分钟,或者使用Js2coffee更快。

或者看看这个Gulpfile.js (不是我的作品)。

或者使用印度茶并使用以下代码:

代码语言:javascript
复制
chai  = require 'chai'
chai.should() # add should to Object.prototype

describe "Test", ->
    it "should pass", ->
         true.should.equal true
票数 3
EN

Stack Overflow用户

发布于 2015-03-23 11:36:25

要运行coffeescript规范,您所需要做的就是npm install coffee-script。不需要在coffeescript中有一个吞咽文件。

如果您安装了coffeesctipt,就足以在您的吞咽文件中执行这样的测试任务:

代码语言:javascript
复制
gulp.task('test', function(){
  return gulp.src('./specs/**/*.spec.coffee')
    .pipe(mocha({reporter:'nyan'}));
});

因此,不需要将*.coffee文件通过gulp管道传输。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24817170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档