[英]Jest set TZ env variable PER test
我遇到了一个问题,我想在不同的时区下运行我的一些测试。
在访问了几个链接之后,我发现您可以在 package.json 或命令行中调用jest
之前设置TZ
env var,如下所示:
{
...
"test": "TZ=America/Sao_Paulo jest"
...
}
但是如果我想同时测试America/Sao_Paulo
和Asia/Shanghai
的话,这并不能很好地扩展……我必须做这样的事情……
{
...
"test": "TZ=America/Sao_Paulo jest & TZ=Asia/Shanghai jest"
...
}
我还尝试了通过在每个测试的beforeEach
中操作process.env.TZ
来设置时区的方法,但是……当它运行我的套件时,它实际上并没有在环境中获取。
好的,我四处走动了一下,但最终创建了一个名为handleTests.sh
的自定义 bash 脚本,并将我的测试文件重命名为toUTCDate_test.ts
而不是toUTCDate.test.ts
以避免开玩笑地拿起它并运行它。
我的 package.json 现在看起来像:
{
...
"test": "./handleTests.sh"
...
}
确保你运行
chmod +x./handleTests.sh
# run jest like normal...
jest
# run toUTCDate tests, note _test in the file name...
# this is to dodge jest's auto-run and run only on our own terms.
for TZ in America/Los_Angeles America/Sao_Paulo Asia/Shanghai
do
TZ=$TZ jest --testRegex toUTCDate_test
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.