Jestjs Jest-Storyshot-getCustomBrowser-如何管理?

Jestjs Jest-Storyshot-getCustomBrowser-如何管理?,jestjs,storybook,storyshots,Jestjs,Storybook,Storyshots,有一个问题,我想使用一个自定义浏览器来进行带有笑话的故事快照,但我很难找到任何关于管理浏览器生命周期的示例或文档,这只是随便提到的。我的故事照是这样的 initStoryshots({ suite: 'Image storyshots', storyKindRegex: /^((?!.*?skipImageSnapshot).)*$/, test: imageSnapshot({ storybookUrl, getMatchOptions, getCustom

有一个问题,我想使用一个自定义浏览器来进行带有笑话的故事快照,但我很难找到任何关于管理浏览器生命周期的示例或文档,这只是随便提到的。我的故事照是这样的

initStoryshots({
  suite: 'Image storyshots',
  storyKindRegex: /^((?!.*?skipImageSnapshot).)*$/,
  test: imageSnapshot({
    storybookUrl,
    getMatchOptions,
    getCustomBrowser: async () => {
      let browser = await puppeteer.launch({
        args: [
          '--no-sandbox ',
          '--headless',
          '--disable-setuid-sandbox',
          '--disable-dev-shm-usage',
          '--disable-lcd-text',
        ],
      });

      return browser
    }
  }),
});
因此,我不清楚我可以在哪里添加一个afterAll或其他方法来获取浏览器和
.close()


希望能在这里找到一些指导。请让我知道我可以添加哪些详细信息

好的,解决了。在此处为下一个人留下记录:

解决方案是捕获由
imageSnapshot
返回的testFn,然后覆盖该上的

let browser;

let afterAll = () => {
  if (browser) {
    browser.close();
  }
};

let testFn = imageSnapshot({
  storybookUrl,
  getMatchOptions,
  getCustomBrowser: async () => {
    browser = await puppeteer.launch({
      args: [
        '--no-sandbox ',
        '--headless',
        '--disable-setuid-sandbox',
        '--disable-dev-shm-usage',
        '--disable-lcd-text',
      ],
    });
    return browser;
  },
});

testFn.afterAll = afterAll;

initStoryshots({
  suite: 'Image storyshots',
  storyKindRegex: /^((?!.*?skipImageSnapshot).)*$/,
  test: testFn,
});