Reason / Bucklescript + bs-jest:如何在__tests__文件夹之外编译带有* .test.re模式的文件?

时间:2018-05-10 03:46:28

标签: jestjs reason bucklescript

背景:

我目前正在使用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在默认情况下运行和工作。

任何帮助都不仅仅是值得赞赏的。谢谢。

3 个答案:

答案 0 :(得分:0)

我在两个项目中都使用了bs-jest,因为它们不喜欢在' Iterate the sumRange union and add each Area to our formula string formula = "=Sum(" For Each thisArea In sumRange.Areas formula = formula & thisArea.Address & "," Next formula = Left(formula, Len(formula) - 1) formula = formula & ")" 根目录下进行测试。您需要调整玩笑的运行方式才能运行测试并收集覆盖率。通常,您只需要添加__tests__并指定目录,例如:

src/test

Example package.jsonanother example

答案 1 :(得分: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}"
    ]
  }

答案 2 :(得分:-1)

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

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