目的

当我将React开发环境迁移到Docker时,用jest进行的单元测试没有通过。
这是因为我在 Docker 中使用的 Ubuntu 没有任何特殊设置,并且时区设置为 UTC。
所以这次如何在运行测试时修复时区而不更改容器本身的时区这将是一份备忘录。

程序

这里有三种方法。
不管你选择哪个,结果都是一样的。

方法一、在Jest执行环境配置文件中指定时区

请参考这篇文章。

在与package.json 相同的层次结构中创建一个Jest 配置文件jest-global-setup.js 并描述时区。

jest-global-setup.js
module.exports = async () => {
  process.env.TZ = 'Asia/Tokyo';
};

将以下内容添加到package.json 的笑话定义中:

包.json
{
  "jest": {
    "globalSetup": "./jest-global-setup.js"
  }
}

方法2.运行测试时指定时区

在执行yarn test 时明确指定时区。

# TZ=Asia/Tokyo yarn test

方法三、在 package.json 中的测试定义中指定时区

yarn test 执行的脚本命令中显式指定时区。

包.json
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "TZ=Asia/Tokyo react-scripts test", // タイムゾーンを指定

概括

将开发环境迁移到 Docker 时,您必须小心。 .
个人推荐第三种方式,因为速度快,而且只需要设置一次。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626195.html

相关文章: