如何通过命令行告诉Jest不要运行某个测试文件,而是运行所有其他文件?

时间:2018-12-01 14:26:05

标签: javascript node.js regex jestjs

我有三个测试文件,acceptance.test.js routes.test.js snapshots.test.js

我想在package.json中创建一个npm脚本,该脚本在使用时将忽略这些测试文件之一。我正在尝试使用Jest选项--testPathPattern来做到这一点。例如:

  "scripts": {
    "no-snapshots-test": "jest --coverage --testPathPattern=^(?!snapshots).*$"
  }

不过,该示例在终端中给出了.*$ was unexpected at this time的错误。我尝试从最后删除。* $,但这会使快照测试仍然运行。

什么是允许我指定要忽略的文件的正确正则表达式?我需要在CLI中执行此操作,因此无法使用Jest配置选项testPathIgnorePattern。

1 个答案:

答案 0 :(得分:1)

不支持开头^和结尾$。忽略它们并使用相同的正则表达式,而不会出现负前瞻:

"scripts": {
    "no-snapshots-test": "jest --coverage --testPathPattern=snapshots.*"
}

一个猜测:您可能需要使用正确的JavaScript Regex语法:/snapshots.*/g