如何使用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编写模块化类,CoffeeScript和类必须可以使用jasmine-node(CI服务器)进行测试。
我该怎么办呢? 谢谢!
编辑:
我用命令执行测试(在带测试的目录下):
jasmine-node ./
答案 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,看看如何。