【问题标题】:Jest testMatch config for '+state' files'+state' 文件的 Jest testMatch 配置
【发布时间】:2020-02-06 21:25:59
【问题描述】:

我正在为我的 Angular 项目使用带有 Jest 的单元测试。设置工作正常,除非我想在路径中使用“+”测试文件,例如对于路径为“src/lib/+state/auth.effects.spec.ts”的文件。

我运行测试

jest src/lib/+state/auth.effects.spec.ts

控制台输出是

No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In /Users/luki/Applications/givve/lunch-admin-webapp/libs/auth
68 files checked.
testMatch: **/+(*.)+(spec|test).+(ts|js)?(x) - 17 matches
testPathIgnorePatterns: /node_modules/ - 68 matches
testRegex:  - 0 matches
Pattern: src/lib/+state/auth.effects.spec.ts - 0 matches

我猜问题出在

的开玩笑配置部分
testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)']

不幸的是,在状态文件前加上“+”是项目中的命名约定。

任何想法如何包含这些文件?

【问题讨论】:

  • 我认为问题不在于“+” - 您是否尝试将其重命名以进行测试?
  • 您的路径可能不正确(我不确定,因为使用 NX 工作区和“+”有效)。尝试在没有路径的情况下运行所有​​测试并查看是否有这些测试。
  • 如果我将目录重命名为“state”,测试会按预期运行。如果我运行所有测试,也会运行提到的规范。仅当命令中的路径以特定文件为目标时才会出现此问题,如描述中所述。

标签: angular jestjs


【解决方案1】:

在进一步的研究中,我偶然发现了 --runTestsByPath 选项。以这种方式指定路径有效。

jest --runTestsByPath "src/lib/+state/auth.effects.spec.ts"

https://jestjs.io/docs/en/cli#--runtestsbypath

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2018-05-21
    • 2022-01-05
    • 1970-01-01
    • 2023-03-05
    • 2019-11-09
    • 2019-11-20
    相关资源
    最近更新 更多