【问题标题】:vitest global variables in setupfiles安装文件中的 vitest 全局变量
【发布时间】:2023-02-05 11:57:54
【问题描述】:

如何让我的设置文件中定义的变量在我的测试文件中工作?

安装文件:

var lol = 'lol'

测试:

describe("test", () => {
  it("test lol", () => {
    expect(lol).toBe("lol");
  });
});

这不按预期工作。然而

window.lol = 'lol'

这行得通。有没有办法让以前的版本工作或自动将所有全局变量设置为窗口的属性?

【问题讨论】:

    标签: javascript vitest


    【解决方案1】:

    我碰巧只是弄清楚了这一点,当我关闭所有选项卡寻找其他人调查过这个时,我看到了你的帖子。

    无论如何你可以结帐:

    https://github.com/vitest-dev/vitest/tree/main/test/global-setup

    在测试出哪些可行之后,下面是我如何为我正在做的测试添加 BigInt 序列化:

    // vite.config.js
    export default defineConfig({
      test: {
        // ...
        setupFiles: ['./src/utils/setup-teardown-hooks.js'],
        // ...
      },
    });
    

    进而:

    // setup-teardown-hook.js
    import { afterAll, beforeAll } from 'vitest';
    beforeAll(() => {
      global.BigInt.prototype.toJSON = function () {
        return this.toString();
      };
      // or from the the original link's example
      global.something = 'something';
      // or 
      global.lol = '?';
    });
    

    换句话说,向global 添加内容似乎无法通过globalSetup 配置字段,而是通过setupFiles 字段。 beforeAll 挂钩在每个单独的测试文件/“套件”的开头被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多