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

标签 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。

最佳答案

不支持开头 ^ 和结尾 $。省略它们并使用完全相同的正则表达式而没有负面前瞻:

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

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

关于javascript - 如何通过命令行告诉 Jest 不要运行某个测试文件,而是运行所有其他文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53571740/

相关文章:

javascript - slider 分页图标效果

node.js - Nginx 中的多个域仅允许 https

angularjs - nginx环回反向代理无法访问自定义路径

c# - 基于模式的更智能的字符串替换

javascript - 如何使用javascript根据特定要求验证表达式?

javascript正则表达式验证范围内的年份

javascript - 使用 lodash 进行多级分组

javascript - 从对象值检索图像 url - Angular JS

Javascript 根据新日期仅获取偶数小时周期

javascript - AngularJS 和 Node.js CORS 不适用于 PUT/POST