2

背景:

我目前正在使用 bs-jest 进行单元测试。另外,我使用的是 bsb init 项目,这意味着我首先使用 Reason/Bucklescript + 编译文件,然后使用 Webpack 运行编译文件。

默认情况下,Jest 会选择其中包含单词 test 的文件,例如 component.test.js,默认情况下会被 Jest 选择。

Bs-jest 将默认工作,文件被放在 __tests__目录中。但是,我的规范文件遵循*.test.re模式,放在我的组件文件夹中,即放在其他文件夹中,__tests__不会编译为适当的*test.js文件。

客观的:

编译:

├── Components
|   ├── toolbar
|   |   └── toolbar.re
|   |   └── toolbar.test.re

至:

├── Components
|   ├── toolbar
|   |   └── toolbar.bs.js
|   |   └── toolbar.test.bs.js

然后让 Jest 像默认情况下一样运行和工作。

任何帮助都非常感谢。谢谢你。

4

3 回答 3

2

我在两个项目中使用了 bs-jest __tests__,因为我更喜欢使用src/test. 您需要调整 jest 的运行方式以运行测试并收集覆盖率。通常,您只需要添加--env=jsdom并指定目录,例如:

"test": "jest --env=jsdom --testMatch='**/test/*test.{js, re}' --watch"

示例 package.json另一个示例

于 2018-08-22T01:22:01.433 回答
0

您可以在 中自定义测试文件路径package.json,例如:

  ...

  "scripts": {
    "test": "jest",
    "watch:test": "jest --watchAll",
  },

  ...

  "jest": {
    "verbose": true,
    "testEnvironment": "jsdom",
    "testMatch": [
      "**/tests_jest/*.{js,re}",
      "**/tests_jest_blablabla/*.{js,re}"
    ]
  }
于 2020-04-20T20:14:08.980 回答
0

这与在您的 bsconfig.json 中,您的包被标记为 dev 的事实有关。这意味着它将无法在非开发源中获取,例如您的 src 文件夹。通过将其移动到常规依赖项,它将按预期工作。

话虽这么说,现在您可以理解由于编译原因,它可能为什么在它自己的文件夹中的架构。

于 2018-05-10T04:26:58.773 回答