node.js - 如何跨多个测试目录运行 jasmine 规范

标签 node.js jasmine automated-tests

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

这是我的项目结构:

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

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

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

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

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

最佳答案

如果您将 "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
}

关于node.js - 如何跨多个测试目录运行 jasmine 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46098429/

相关文章:

javascript - Heroku: Node 应用程序抛出 "No default language could be detected for this app"错误

javascript - 来自 ReactJs 的 POST 请求

node.js - 为什么我总是收到 OverwriteModelError?

javascript - 我发现使用 log4js-protractor-appender 有问题

iphone - iPad/iPhone 的功能测试自动化工具?

javascript - 验证 documentDB REST API 调用

javascript - 带有 Promise 的 Foreach 不等待方法结果

unit-testing - 使用 Karma 在移动设备上测试 Javascript

testing - 如何在 cypress 中创建一个查找 "not contains"单词的函数?

Selenium如何制作点击并按住按钮