Jasmine-node CLI:指定文件匹配参数

时间:2013-10-11 07:59:11

标签: jasmine jasmine-node

我正在尝试执行我的节点茉莉花测试的一部分。

我的项目结构如下

root
  + server
    + invite
      +specs
        inviteSendSpec.js
        inviteConfirmSpec.js
        .. many more spec files
    + auth 
      +specs
       .. many spec files

我可以通过运行来执行所有测试:

node-jasmine --verbose server/

我正在试图找出如何使用-m参数,以便我可以运行与特定文件名模式匹配的测试。

e.g。

node-jasmine --verbose -m invite server/
根据我发现的几个例子,

应该运行包含邀请的所有测试。但相反,它只找到一个单一的测试。

如果我尝试运行类似的变体,例如

node-jasmine --verbose -m send server/

它不会发现任何测试。

选择测试子集的正确语法是什么?

P.S。我正在运行jasmine-node 11.1.0(所以它不是walkdir问题)

2 个答案:

答案 0 :(得分:2)

-m或--match参数确实用于文件名匹配。

我在键盘上撞了几个小时,最后看了cli.js的来源。

所以这是票(cli.js,第228行):

var regExpSpec = new RegExp(match + (matchall ? "" : "spec\\.") + "(" + extensions + ")$", 'i')

啊哈!

首先,您必须指定--matchall键,否则它将使用默认" spec"前缀。

其次,你无法指定扩展名,如果使用--coffee命令行参数,它们可以是js或js | coffee | litcoffee

我的测试文件有unit.js后缀(不要问为什么),所以我最终得到了

cli.js --verbose --matchall --match unit\. --test-dir C:\MyProject\

它完成了这项工作。

答案 1 :(得分:0)

您的文件名是正确的

来自文档github.com/mhevery/jasmine-node

  

注意:您的规范文件必须命名为* spec.js,* spec.coffee   或者* spec.litcoffee,它匹配正则表达式   /spec.(js|coffee|litcoffee)$/i;否则jasmine-node将无法找到   他们!例如,sampleSpecs.js是错误的,sampleSpec.js是对的。

您只需要运行孔文件夹:

node-jasmine --verbose server / invite / specs /

node-jasmine --verbose server / auth / specs /