Reason/Bucklescript + bs-jest:如何在 __tests__ 文件夹外编译带有 *.test.re 模式的文件?
Reason/Bucklescript + bs-jest: How to compile files with a *.test.re pattern outside of __tests__ folder?
背景:
我目前正在使用 bs-jest 进行单元测试。此外,我使用的是 bsb init 项目,这意味着我首先使用 Reason/Bucklescript 编译文件 + 然后 运行ning 使用 Webpack 编译文件。
默认情况下,Jest 将选取其中包含单词 test 的文件,例如 component.test.js,将由 Jest 默认选取。
Bs-jest 将默认运行,文件放在 __tests__
目录中。但是,我的规范文件遵循 *.test.re
模式,放在我的组件文件夹中,即放在 __tests__
以外的文件夹中将不会编译为适当的 *test.js
文件。
Objective:
编译:
├── Components
| ├── toolbar
| | └── toolbar.re
| | └── toolbar.test.re
收件人:
├── Components
| ├── toolbar
| | └── toolbar.bs.js
| | └── toolbar.test.bs.js
然后使用 Jest 运行 并像当前默认情况下一样工作。
非常感谢您的帮助。谢谢你。
这与在您的 bsconfig.json 中您的包被标记为 dev 的事实有关。这意味着它将无法在非开发源中获取,例如您的 src 文件夹。通过将其移至常规依赖项,它将按预期工作。
话虽这么说,现在您可以了解架构,也许由于编译原因,它为什么在自己的文件夹中。
我在两个项目中使用了 bs-jest,其中测试没有在根级别 __tests__
目录中进行,因为我更喜欢使用 src/test
。您需要调整开玩笑 运行s 的方式,以便 运行 测试和收集覆盖率。通常,您只需要添加 --env=jsdom
并指定目录,例如:
"test": "jest --env=jsdom --testMatch='**/test/*test.{js, re}' --watch"
您可以在package.json
中自定义测试文件路径,例如:
...
"scripts": {
"test": "jest",
"watch:test": "jest --watchAll",
},
...
"jest": {
"verbose": true,
"testEnvironment": "jsdom",
"testMatch": [
"**/tests_jest/*.{js,re}",
"**/tests_jest_blablabla/*.{js,re}"
]
}
背景:
我目前正在使用 bs-jest 进行单元测试。此外,我使用的是 bsb init 项目,这意味着我首先使用 Reason/Bucklescript 编译文件 + 然后 运行ning 使用 Webpack 编译文件。
默认情况下,Jest 将选取其中包含单词 test 的文件,例如 component.test.js,将由 Jest 默认选取。
Bs-jest 将默认运行,文件放在 __tests__
目录中。但是,我的规范文件遵循 *.test.re
模式,放在我的组件文件夹中,即放在 __tests__
以外的文件夹中将不会编译为适当的 *test.js
文件。
Objective:
编译:
├── Components
| ├── toolbar
| | └── toolbar.re
| | └── toolbar.test.re
收件人:
├── Components
| ├── toolbar
| | └── toolbar.bs.js
| | └── toolbar.test.bs.js
然后使用 Jest 运行 并像当前默认情况下一样工作。
非常感谢您的帮助。谢谢你。
这与在您的 bsconfig.json 中您的包被标记为 dev 的事实有关。这意味着它将无法在非开发源中获取,例如您的 src 文件夹。通过将其移至常规依赖项,它将按预期工作。
话虽这么说,现在您可以了解架构,也许由于编译原因,它为什么在自己的文件夹中。
我在两个项目中使用了 bs-jest,其中测试没有在根级别 __tests__
目录中进行,因为我更喜欢使用 src/test
。您需要调整开玩笑 运行s 的方式,以便 运行 测试和收集覆盖率。通常,您只需要添加 --env=jsdom
并指定目录,例如:
"test": "jest --env=jsdom --testMatch='**/test/*test.{js, re}' --watch"
您可以在package.json
中自定义测试文件路径,例如:
...
"scripts": {
"test": "jest",
"watch:test": "jest --watchAll",
},
...
"jest": {
"verbose": true,
"testEnvironment": "jsdom",
"testMatch": [
"**/tests_jest/*.{js,re}",
"**/tests_jest_blablabla/*.{js,re}"
]
}