【问题标题】:How to use different jest.config.js for unit and component tests?如何使用不同的 jest.config.js 进行单元和组件测试?
【发布时间】:2020-08-24 11:43:49
【问题描述】:

我正在尝试为应用程序的组件级测试创建一个单独的测试套件。

在这个单独的套件中,我将需要一个自定义测试环境来引导一些持久层模拟,并且这些测试将与我的单元测试一起存放在我的项目结构中的一个单独文件夹中。

例如单元测试将在 __tests__ 文件夹中的代码附近,而组件测试将在顶级 tests/ 目录中。

我的大部分 jest.config.js 设置已经完成,但是当我添加 projects 部分以覆盖某些字段时,特别是 testMatchtestEnvironment 它完全忽略了我在全局中指定的配置。

现在我一直在阅读 projects 配置主要是关于 monorepo 设置,所以我认为这不是正确的方法。

理想情况下,我可以在我的 tests/ 目录中有一个单独的 jest.config.js,但我不知道如何设置它,如果它甚至可以工作。

对此问题的任何见解都会有所帮助。提前谢谢。

【问题讨论】:

    标签: javascript testing jestjs ts-jest


    【解决方案1】:

    我最终做的是在 package.json 中指定单独的项目

    "jest": {
        "projects": [
            "<rootDir>/jest.unit.config.js",
            "<rootDir>/tests/jest.component.config.js"
        ]
    }
    

    这让我可以单独运行jest,它将运行所有项目,或者如果我想指定要运行的特定配置,我可以运行jest --projects jest.unit.config.js,它只会运行该特定项目。

    我还可以在我的 package.json 中添加一个脚本部分,以便更轻松地运行它们。

    "scripts": {
        "test": "jest", 
        "test:unit": "jest --projects tests/jest.component.config.js",
        "test:component": "jest --projects jest.unit.config.js"
    }
    

    【讨论】:

      【解决方案2】:

      要指定不同的配置文件,您可以使用--config 选项。

      例如,如果您有一个用于组件测试的tests/jest.config.js 文件配置和一个用于单元测试的jest.config.js 文件,您可以在package.json 中配置脚本,使其看起来像这样:

      "scripts": {
          "tests:unit": "jest --config=jest.config.js",
          "tests:component": "jest --config=tests/jest.config.js"
      }
      

      【讨论】:

      • 如果我只是在顶层运行 jest,那么 jest 会注意到并把它们都捡起来吗?
      猜你喜欢
      • 2012-10-15
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多