簡體   English   中英

如何使用 RequireJS 運行 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM