vuejs3 - vue 和 vitest,data-v-[random-number] 属性被添加到 html

标签 vuejs3 vite vitest

简介:我正在使用 vite 和 vitest,我正在对 100% 模板且不包含任何逻辑的组件进行快照测试

问题:data-v-[random-number] 它被添加到每个组件的根元素中,并且快照始终不同

我想要什么:了解为什么我会得到这个 data-v-[random-number],如果可能的话,找到避免此问题的方法

简短示例代码:

BaseText.vue:

<script setup lang="ts"></script>
<template>
    <span><slot></slot></span>
</template>

BaseText.spec.ts:

import { describe, it, expect } from "vitest";
import { shallowMount } from "@vue/test-utils";
import BaseText from "./BaseText.vue";

describe(name, () => {
    const wrapper = shallowMount(BaseText);
    it("MatchSnapshot", () => {
        expect(wrapper.html()).toMatchSnapshot();
    });
});

运行测试时出错:

 - Expected   ""<span data-v-25e5131c=""></span>""
  + Received   ""<span data-v-b3462088=""></span>""

最佳答案

您可以使用此库删除data-v 属性(自动执行)。它还涵盖了在 Vue 中使用快照测试时需要的许多其他常见内容。

尽管名称中有 jest,但这也适用于 Vitest。

关于vuejs3 - vue 和 vitest,data-v-[random-number] 属性被添加到 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74984201/

相关文章:

typescript - vue-test-utils +wrapper.vm 的 typescript 类型

javascript - 全局导入js文件到vuejs 3

javascript - 对对象的代理数组进行排序,localeCompare 不是函数

webpack - scss 不适用于 vue3 应用程序(TypeError : this. getOptions 不是函数)

vue.js - 如何创建导入另一个组件的 Vue 包

visual-studio-code - VS Code 显示 eslint 错误,但 vitest 正在运行。 'vi' 未定义

javascript - Vite: resolve.alias - 如何解析路径?

javascript - 将 "@daily-co/daily-js"导入 SvelteKit 应用程序会引发 "global is not defined"错误

javascript - 在 Vite2 中,如何在 tailwind.config.js 中导入 ESModule

vue.js - Vitest 与 Quasar 的集成