如何跨多个testing目录运行茉莉花规格

Jasmine被设置为在一个目录下运行它的规格。 它没有设置从多个spec目录查找和运行testing。 这是我的项目结构:

project root: / package.json spec --> jasmine_examples module_a --> spec module_b --> spec module_c --> spec 

如果我想从每个模块运行testing,我必须指定每个spec文件。

  "spec_files": [ "module_a/spec/spec.js", "module_b/spec/spec.js", "module_c/spec/spec.js" ], 

这允许我运行jasmine cli,但它不是可扩展的。 一定会有更好的办法。 我不想手动指定每个包含规范的模块。 我想所有的目录recursionsearch规格。

我只使用JSDom运行这些节点,没有噶或任何无头浏览器。

如果你用双引号(“”)把你的"spec_dir"属性改为根目录,那么Jasmine将从根目录开始并遍历子目录。

接下来的问题是node_modules目录也会被包含。 所以你必须在spec_files中使用一个不太可能在spec_files中find的spec模式。 我用["**/*.[sS]pec.js"]这意味着命名我的规格文件module_a.spec.js。

 { "spec_dir": "", "spec_files": [ "**/*.[sS]pec.js" ], "helpers": [ "helpers/**/*.js" ], "stopSpecOnExpectationFailure": false, "random": false } 

您也可以从您的源代码根目录(可能是src /)分离您的spec文件来testing/使用等效的文件夹结构:

 project root: / package.json spec --> jasmine_examples src/ module_a module_b module_c test/ module_a module_b module_c 

然后在你的茉莉花configuration定义规格文件,如:

 "spec_files": [ "test/**/*.spec.js" ],