Chrome扩展程序的Jest-Puppeteer测试-测试通过,但测试套件由于所需的网站而失败

ldioqlga  于 12个月前  发布在  Jest
关注(0)|答案(1)|浏览(142)

我有一个Chrome扩展程序,我正在为工作而构建,以测试一个我无法控制的外部网站。该网站有很多内部错误,导致我的测试套件失败,尽管测试通过, puppet 师工作流程工作。(我确实为那个网站的实际用户感到遗憾)。我试着定义缺失的引用,我已经添加了各种侦听器来处理网站的错误,但到目前为止还没有运气,虽然测试完成,但它仍然无法通过套件。
我将不得不省略任何识别信息,但希望这将是一个很好的开始,我会添加,因为我可以与请求。

● Test suite failed to run

    ReferenceError: module is not defined

  ● Test suite failed to run

    ReferenceError: getItemKeyValue is not defined

  ● Test suite failed to run

    TypeError: Cannot read properties of undefined (reading 'template')

  ● Test suite failed to run

    ReferenceError: global is not defined

Test Suites: 1 failed, 1 total
Tests:       4 passed, 4 total

字符串
我已经尝试忽略所有的错误,这是固有的网站上,我必须测试我的扩展,使测试套件可以通过。所有的结果,从这些是运行测试,并通过他们,然后失败的套件,或未能运行网站,因此一切都失败,无论如何,因为我定义了缺失的变量。

await page.evaluateOnNewDocument(() => {
    window.addEventListener('error', event => {
      console.warn('Error intercepted:', event.message);
      event.preventDefault(); // Prevent the default handler
    });
  });

  //This error captures and gets past page errors, but doesn't work on the reference errors 
  page.on('pageerror', error => {
    if (error instanceof ReferenceError) {
      // Handle ReferenceError differently
      console.log('ref error', error)

    } else {
      // Handle or log other types of errors
      console.error('Page error:', error.message);
    }
  });

  // Stops all progress, but technically can run the suite :(
  await page.evaluateOnNewDocument(() => {
    window.getItemKeyValue = window.getItemKeyValue || function () { }; // Stubbing the function
    window.global = window; // Defining 'global'
  });

6pp0gazn

6pp0gazn1#

很可能你需要设置exitOnPageError=false。由于默认值为true,测试可能会通过,但在此之后,页面会创建一个错误,运行者会退出测试套件。
来自docs https://github.com/argos-ci/jest-puppeteer?tab=readme-ov-file#configuring-jest-puppeteer:

/**
   * Exit on page error.
   * @default true
   */
  exitOnPageError?: boolean;

字符串

相关问题