我正在将我的项目从 Vue-CLI 和 Jest 迁移到 Vite 和 Vitest。一切都工作正常,直到我试图让我的测试通过詹金斯。我发现由于某些资产路径的原因,某些快照不匹配。
src="file:///C:/src/..."
(这很奇怪,因为这条路径不存在)src="file:///src/..."
这些资源使用
.vue
导入到我的 return new URL("/src/...", import.meta.url).href
文件中。
当然一切都在本地完美运行。
你知道为什么吗?我该如何解决它?
谢谢!
编辑:我找到了原因。我在 Windows 上运行本地测试,但在 Linux 上运行 Jenkins 测试。我通过使用
process.env.VITEST
环境变量解决了这个问题:
export function setDynamicUrl(media: string) {
return process.env.VITEST
? media
: new URL(`/src/assets/${media}`, import.meta.url).href;
}