繁体   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