Jasmine节点CLI:指定文件匹配参数

Jasmine节点CLI:指定文件匹配参数,jasmine,jasmine-node,Jasmine,Jasmine Node,我正在尝试执行节点jasmine测试的一个子集 我有一个项目结构如下 root + server + invite +specs inviteSendSpec.js inviteConfirmSpec.js .. many more spec files + auth +specs .. many spec files 我可以通过运行以下命令从根目录执行所有测试: node-jasmin

我正在尝试执行节点jasmine测试的一个子集

我有一个项目结构如下

root
  + server
    + invite
      +specs
        inviteSendSpec.js
        inviteConfirmSpec.js
        .. many more spec files
    + auth 
      +specs
       .. many spec files
我可以通过运行以下命令从根目录执行所有测试:

node-jasmine --verbose server/
我试图弄清楚如何使用-m参数,这样我就可以运行与特定文件名模式匹配的测试

e、 g

根据我找到的几个例子,应该运行所有包含invite的测试。但它只找到一个测试

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

它将找不到任何测试

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


p、 我运行的是jasmine node 11.1.0(因此它不是walkdir问题)

您的文件名正确无误

从文件中

注意:您的规范文件必须命名为*spec.js、*spec.coffee 或*spec.litcoffee,它与正则表达式匹配 /规格(js | coffee | litcoffee)$/i;否则将找不到jasmine节点 他们!例如,sampleSpec.js是错误的,sampleSpec.js是正确的

您只需运行“孔”文件夹:

节点jasmine——详细服务器/invite/specs/

节点jasmine--verbose server/auth/specs/

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

我在键盘上敲了几个小时,最后查看了cli.js的源代码

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

啊哈

首先,必须指定--matchall键,否则它将使用默认的“spec”前缀

其次,您无法指定扩展,如果您使用--coffee命令行参数,它们要么是js,要么是js | coffee | litcoffee

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

cli.js --verbose --matchall --match unit\. --test-dir C:\MyProject\
它成功了

node-jasmine --verbose -m send server/
var regExpSpec = new RegExp(match + (matchall ? "" : "spec\\.") + "(" + extensions + ")$", 'i')
cli.js --verbose --matchall --match unit\. --test-dir C:\MyProject\