[英]How to configure RequireJS (require.config()) with jasmine-node?
[英]How to run jasmine-node tests with RequireJS
如何使用 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 ./
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
名为RingBuffer.spec.coffee
最小测试文件
require ["disrasher"], (mod) ->
describe "A test", ->
it "should fail", ->
expect(1).toEqual 0
目前它实际上不起作用,因为我还没有将项目与 require 正确连接,我不认为。 到时候我会在这里发帖。
如果有人遇到这个问题,自从提出这个问题以来,情况已经发生了很大变化。 要检查的第一件事仍然是您将文件命名为thing.spec.coffee
。
但是,如果您正在运行测试并且仍然看到输出“0 测试”,则需要使用 requirejs 配置创建一个 JavaScript 文件。 这必须是 JavaScript,而不是 CoffeeScript。
// requirejs-setup.js
requirejs = require('requirejs');
requirejs.config({ baseUrl: __dirname + '/../' });
然后告诉 jasmine 使用这个安装文件:
jasmine-node --coffee --requireJsSetup requirejs-setup.js ./
这样做的一个好处是您不需要在每个规范文件中都包含 requirejs 配置。
我已经在 node v12.16、jasmine-node v3.0.0 和 requirejs v2.3.6 上测试过了。
jasmine-node 和 require.js 似乎完全不兼容。 也就是说,可以使用一些额外的代码在 node 中的 require.js 模块上运行 jasmine 测试。 看看https://github.com/geddski/amd-testing看看如何。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.