如何跨多个测试目录运行 jasmine 规范

nul*_*eph 5 automated-tests node.js jasmine

Jasmine 设置为在单个目录下运行其规范。它未设置为从多个规范目录查找并运行测试。

这是我的项目结构:

 project root: /
     package.json
     spec
        --> jasmine_examples
     module_a
        --> spec
     module_b
        --> spec
     module_c
       --> spec
Run Code Online (Sandbox Code Playgroud)

如果我想从每个模块运行测试,我必须指定每个规范文件。

    "spec_files": [
      "module_a/spec/spec.js",
      "module_b/spec/spec.js",
      "module_c/spec/spec.js"
    ],
Run Code Online (Sandbox Code Playgroud)

这允许我运行jasminecli,但它不可扩展。一定会有更好的办法。我不想手动指定包含规范的每个模块。我想让所有目录递归搜索规格。

我只使用 JSDom 在 Node 上运行这些,没有 Karma 或任何无头浏览器。

JJo*_*nes 4

如果您"spec_dir"使用双引号 ("") 将属性更改为根目录,那么 Jasmine 将从根目录开始并遍历子目录。

那么问题是node_modules目录也将被包含在内。因此,您必须使用spec_files在那里极不可能找到的规范模式。我使用["**/*.[sS]pec.js"]这意味着将我的规范文件命名为 module_a.spec.js。

{
  "spec_dir": "",
  "spec_files": [
    "**/*.[sS]pec.js"
  ],
  "helpers": [
    "helpers/**/*.js"
  ],
  "stopSpecOnExpectationFailure": false,
  "random": false
}
Run Code Online (Sandbox Code Playgroud)