【问题标题】:How to configure mocha to find all test files recursively?如何配置 mocha 以递归方式查找所有测试文件?
【发布时间】:2018-09-04 22:55:04
【问题描述】:

如何配置 mocha 以查找我的项目目录中的所有测试文件,而不仅仅是根目录中 test 文件夹中的测试文件?

目前,我在 package.json 中使用 npm 脚本:

"test": "mocha"

并使用以下命令运行:

npm run test

【问题讨论】:

  • 你的摩卡咖啡怎么样?您是使用任务运行器、npm 脚本还是直接从命令行使用?
  • 使用 npm 脚本 (npm run test)
  • 好的。那么你的 package.json 中的“测试”脚本是什么?听起来像是mocha test currently。如果是这样,您需要将其更改为 steve 建议的模式。

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


【解决方案1】:

我正在对此进行测试,并想尝试使用 mocha 在终端中仅运行一个测试文件(不是测试,而是实际的单独文件),但似乎无法解决。

我在下面附上了一个截图来解释。

我想做的只是运行杀手机器人的测试,而不是应用程序测试。

VS code image

【讨论】:

    【解决方案2】:

    这对我有用,在除 node_modules 之外的所有目录中查找所有测试文件

    mocha \"./{,!(node_modules)/**/}*.test.js\"
    

    为了澄清,这个 glop 表达式说:

    获取当前目录(即根目录)或当前目录的任何子目录中所有以 .test.js 结尾的文件,无论深度如何,./node_modules 文件夹中存在的文件除外。

    【讨论】:

    • 为您的回答添加更多解释。就像解释代码的每一部分为用户做了什么。
    【解决方案3】:

    要在src 目录中查找所有测试文件,例如,您应该能够使用这样的模式:

    mocha "src/**/*.test.js"

    ...并确保您的测试文件具有 .test.js 文件扩展名,以便它们不同于您的其他 .js 文件。

    (注意模式周围的双引号)

    【讨论】:

    • 这里实际上不需要双引号。不过,并不是说它们会伤害任何东西。
    • @Steve Holgado 谢谢,但我希望 mocha 扫描所有项目文件夹并执行找到的测试文件
    • 您可以将模式更改为相对于 Mocha,例如 mocha "./**/*.test.js",但您需要测试文件的文件扩展名不仅仅是 .js,这样您的常规JavaScript 文件不会被拾取。
    • @stripberger,如果你不引用该模式,它将被shell解释并类似于src/*/*.test.js,因为shell不理解的含义**.
    • 我怎样才能使用这个配置,我希望能够在运行一些测试时将路径作为参数传递,因为我已经有超过 10 个文件,并且想执行所有(npm run test),有时只执行一个测试,例如 npm tun test test/model/user,现在我使用的是这样的“mocha './test/**/*.test.js'”
    猜你喜欢
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2017-08-17
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多