如何使用RequireJS运行jasmine-node测试

时间:2012-11-28 08:43:13

标签: node.js requirejs jasmine-node

如何使用jasmine-node和RequireJS正确运行jasmine测试?

我已经尝试过类似的东西,但不起作用(CoffeeScript):

requirejs = require 'requirejs'
requirejs.config { baseUrl: __dirname + '/../' }

requirejs ['MyClasses', 'FooClass'], (MyClasses, FooClass) ->

  describe "someProp", ->
    it "should be true", ->
      expect(MyClasses.FooClass.someProp).toEqual true

在0秒内完成0次测试,0次断言,0次失败

我的目标是使用RequireJS编写模块化类,C​​offeeScript和类必须可以使用jasmine-node(CI服务器)进行测试。

我该怎么办呢? 谢谢!

编辑:

我用命令执行测试(在带测试的目录下):

jasmine-node ./

3 个答案:

答案 0 :(得分:0)

Jonathan Tran是对的,这是我文件名中的规范。

我有这个:

"scripts": {
   "install": "cake install",
   "test": "node_modules/jasmine-node/bin/jasmine-node --verbose --coffee --runWithRequireJs --captureExceptions spec"
},

在我的package.json中,我从项目npm install jasmine-node内部安装了jasmine-node

名为RingBuffer.spec.coffee

的最小测试文件
require ["disrasher"], (mod) ->

  describe "A test", ->
    it "should fail", ->
      expect(1).toEqual 0

目前它实际上并不起作用,因为我没有把项目与正确的需求联系在一起我没有想到。我会在这里回复。

答案 1 :(得分:0)

如果有人遇到此问题,自从提出此问题以来,已经发生了很多变化。首先要检查的是,您仍在将文件命名为thing.spec.coffee

但是,如果您正在运行测试并且仍然看到输出“ 0个测试”,则需要使用requirejs配置制作一个JavaScript文件。该必须必须是JavaScript,而不是CoffeeScript。

// requirejs-setup.js
requirejs = require('requirejs');
requirejs.config({ baseUrl: __dirname + '/../' });

然后告诉茉莉花使用此安装文件:

jasmine-node --coffee --requireJsSetup requirejs-setup.js ./

一件好事是,您不需要在每个spec文件中都包含requirejs配置。

我已经在节点v12.16,茉莉节点v3.0.0和requirejs v2.3.6上进行了测试。

答案 2 :(得分:-2)

似乎jasmine-node和require.js完全不兼容。也就是说,可以使用一些额外的代码在节点中的require.js模块上运行jasmine测试。看看https://github.com/geddski/amd-testing,看看如何。