[英]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.