【问题标题】:mocha not running all tests in test dirmocha 没有在测试目录中运行所有测试
【发布时间】:2016-01-07 08:15:19
【问题描述】:

这是我的文件夹结构

src/
   a.js
   b.js
   test/
     a.spec.js
     b.spec.js

我试过跑步

  1. ~/.../src $ mocha
  2. ~/.../src $ mocha test
  3. ~/.../src $ mocha test/
  4. ~/.../src $ mocha ./test/
  5. ~/.../src $ mocha ./test/*.js

但不起作用...我得到的只是一个正在运行的测试文件,其余的都被忽略了。

docs 说 (1) 应该可以完成这项工作,但实际上并没有。

【问题讨论】:

    标签: node.js unit-testing testing mocha.js chai


    【解决方案1】:

    嗯...我是个白痴。我的一个文件中有it.only,但我忘记了。删除.only 就是答案。现在所有的测试文件都在运行。

    对不起,对不起……

    【讨论】:

    • 我相信这对所有像我这样的白痴都有帮助:-D
    • @ReneWooller 完全是 :)
    • 不完全相同但类似转储:在我的情况下,我创建了一个新的测试文件,但忘记以 .test.ts 结束文件名,这使得 mocha 忽略它......只是为了任何其他人也有这个问题:D
    • 您将来可能希望在脚本中使用forbid only flag,以便将it.only 的使用标记为错误。
    • 谢谢!我有完全相同的问题:)
    【解决方案2】:

    它是这样构建的,因此如果您正在对它们进行开发,您可以只在一个或两个文件上运行您的测试套件。如果您想在整个项目中运行mocha,只需指定--recursive

    您可以查看一些文档here

    更好的是,您可以在 CD 的 package.json 中指定它。首先执行npm install mocha --save-dev,然后将其放入您的package.json 文件中,然后运行npm test

    {
      "scripts": {
        "test": "./node_modules/.bin/mocha --recursive",
      }
    }

    【讨论】:

    • --recursive 用于在子文件夹中运行测试文件,但这不是我的情况。输出保持不变,只使用一个文件。
    【解决方案3】:

    在test目录下创建一个moch.opts文件并添加递归选项

    --递归

    运行~/.../src $ mocha 命令;它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 2016-08-07
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多