我有一个已禁用的测试套件/文件。它有一个关联的快照文件。对于我的特殊情况,我不想删除或更新快照文件(长话短说:它在其他地方使用)。
因此,对于过时的快照,Jest 只会发出警告,而不是失败。然而,Jest 随后退出并显示代码 1,并且我的构建失败。尽管没有测试实际失败,但这种情况还是会发生。
我可以调整配置以忽略过时的快照吗?或者是否有其他方法可以让 Jest 在发出警告后以代码 0 退出?
将 --silent 添加到项目 package.json 中的 test-ui 脚本中
不幸的是,我找不到解决此问题的配置更新或 CI 标志,这是适用于我的用例的相关解决方案。
我最终重命名了过时的快照以避免使用
.snap
扩展名,这样它们就不会被 Jest 标记。
如果您希望 Jest 确认这些快照,但仅在某些条件下(例如在 CI 期间),您可以设置一个环境变量来修改 Jest 的快照解析器以有条件地确认您的快照文件。
在下面的示例中,我使用
.snapshot
文件扩展名重命名了我的测试快照。
创建或更新快照解析程序文件,如下所示:
./jest/snapshotResolver.js
module.exports = {
resolveSnapshotPath: (testPath, snapshotExtension) => {
if (process.env.ACKNOWLEDGE_TEST_SNAPSHOTS) {
return `${testPath}.snapshot`;
}
return testPath + snapshotExtension;
},
resolveTestPath: (snapshotFilePath, snapshotExtension) => {
if (process.env.ACKNOWLEDGE_TEST_SNAPSHOTS) {
return snapshotFilePath.replace('.snapshot', '');
}
return snapshotFilePath.replace(snapshotExtension, '');
},
testPathForConsistencyCheck: 'some.test.js',
};
确保您的快照解析器文件已链接到您的 Jest 配置中。
module.exports = {
snapshotResolver: './jest/snapshotResolver.js',
}