我正在尝试执行我的节点茉莉花测试的一部分。
我的项目结构如下
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问题)
答案 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 /