使用 mocha 递归测试

Test recursively using mocha

我的 mocha 有问题,它不理解我的测试层次结构! 我希望我的测试接近他们的代码库,所以我的项目中有这样的层次结构:

Level1
    |_ level11
        |_ level11.js
        |_ level11.test.js
                            |_ level11111
                                |_ level11111.js
                                |_ level11111.test.js
    |_ level12
        |_ level12.js
        |_ level12.test.js
        |_ level121
            |_ level121.js
            |_ level121.test.js
Level2
    |_ level2.js
    |_ level2.test.js

我什么都试过了!使用 **/**.test.js—recursive 标志,它们都没有做它应该做的!

Linux来救援!我在一个根本没有结构的 HUGE 项目中遇到了同样的问题!一些开发人员将测试放在 tests 文件夹中,另一些放在嵌套层中,并且......(一些测试使用 mocha,一些使用 jest!在同一个项目中!:D)

您可以使用:

mocha $(find . -name '*.spec.js')

在你的 package.json 所以:

  "scripts": {
    "test": "mocha $(find . -name '*.spec.js')"
  },

您需要使用带有 extension 标志的 recursive

mocha --extension .test.js --recursive

请阅读 --extension and --recursive 的文档了解更多信息。

配置您的 .mocharc.js 文件以允许 运行 递归测试,如下所示:

module.exports = {
    "recursive": true,
    "exit": true,
    "timeout": "10000",
    "ignore": ["test/Helpers/*.js", "test/Samples/*.js", "test/Helpers/**/"],
    "reporter": "mochawesome",
    "reporterOptions": {
        "reportDir": "mocha"
    }
};