Concurrency Testcafe并发抛出奇怪的错误

Concurrency Testcafe并发抛出奇怪的错误,concurrency,automated-tests,e2e-testing,web-testing,testcafe,Concurrency,Automated Tests,E2e Testing,Web Testing,Testcafe,我有一套测试,当在没有并发的情况下运行时,所有测试都可以通过。当我开始并发运行它们时,它们开始崩溃。我不相信这些测试之间存在导致它们失败的相互依赖关系。当测试失败时,如下所示: 1) A JavaScript error occurred on "https://advancedaccount.wistia.io/stats/medias/lz45f2dspl#social". Repeat test actions in the browser and check the con

我有一套测试,当在没有并发的情况下运行时,所有测试都可以通过。当我开始并发运行它们时,它们开始崩溃。我不相信这些测试之间存在导致它们失败的相互依赖关系。当测试失败时,如下所示:

1) A JavaScript error occurred on
  "https://advancedaccount.wistia.io/stats/medias/lz45f2dspl#social".
     Repeat test actions in the browser and check the console for errors.
     If you see this error, it means that the tested website caused it. You can fix it or disable tracking JavaScript errors in TestCafe. To do the latter, enable the
  "--skip-js-errors" option.
     If this error does not occur, please write a new issue at:
     "https://github.com/DevExpress/testcafe/issues/new?template=bug-report.md".

     JavaScript error details:
     undefined:
         No stack trace available

     Browser: Chrome 73.0.3683 / Linux 0.0.0
     Screenshot: /mnt/artifacts/screenshots/Media - Social Stats/142_errors/1.png

        497 |      .expect(socialStatsPage.youtube.likes.textContent).contains('5')
        498 |      .expect(socialStatsPage.youtube.shares.textContent).contains('100')
        499 |      .expect(socialStatsPage.youtube.views.textContent).contains('20')
        500 |      .expect(socialStatsPage.cardError.withProps('vendorName',
  'facebook').exists).ok()
        501 |      .expect(socialStatsPage.cardError.withProps('vendorName',
  'facebook').textContent).contains('It looks like your credentials might be outdated')
      > 502 |      .click(socialStatsPage.reauthorizeAccountLink)
        503 |      .expect(getLocation()).contains('www.facebook.com');
        504 |  });
        505 |
        506 |test
        507 |  .requestHooks(mockFacebookExpired)('Non-account owner expired token', async (t)
  => {

        at click (/usr/src/app/testcafe/tests/media/socialStats.js:502:8)

  2) Unhandled promise rejection:

     { code: 'E1', isTestCafeError: true, callsite: CallsiteRecord { filename:
  '/usr/src/app/testcafe/tests/media/socialStats.js', lineNum: 501, callsiteFrameIdx: 6,
  stackFrames: [ [CallSite], [CallSite], [CallSite], [CallSite], [CallSite], [CallSite],
  [CallSite], CallSite {}, [CallSite], [CallSite], [CallSite], [CallSite] ], isV8Frames: true
  }, errStack: 'undefined:\n    No stack trace available', pageDestUrl:
  'https://advancedaccount.wistia.io/stats/medias/lz45f2dspl#social' }

     Browser: Chrome 73.0.3683 / Linux 0.0.0
似乎当这种情况发生时,许多(如果不是所有的话)其他并发浏览器也会崩溃,只会出现相同的
未处理承诺拒绝
故障诊断,而与测试无关

我不知道从哪里开始调试这个。任何帮助都会很好,因为我希望让并发工作起来。这在我的mac电脑和我们的CI设置中本地发生

更奇怪的是,当我看到测试失败的截图时,一切看起来都很好,所以我不明白为什么它首先失败了。正如我所说,如果没有并发标志,那么这个测试(以及所有其他测试)通过得很好


任何提示都将不胜感激。我正在使用TestCafév1.2.1。

它看起来像是
requestHooks()
函数中的某个东西可能有竞争条件。您正在传递的名为
mockFacebookExpired
的参数是什么。可能您正试图在requestHook中获取/获取/收集/写入一些值,这导致了错误。。。第二个错误(我相信)是第一个错误的结果。
mockFacebookExpired
是按照文档中的方法进行的模拟:
const mockFacebookExpired=RequestMock()。onRequestTo('https://advancedaccount.wistia.io/social_media_posts/11/stats.json)。响应({错误:{错误代码:'token'u expired',消息:'token is expired'}})https://advancedaccount.wistia.io/social_media_posts/12/stats.json)。响应({喜欢:5,视图:20,共享:100,评论:0,})
这是一个完全不同的测试用例,而不是假定失败的测试用例。很抱歉,上面的代码格式不正确,您显然无法在注释中添加好的注释块。为了完成我刚才所说的,我看不出第507行与第501行的失败有什么关系。尽管这些是我唯一的错误,但看起来确实有点可疑使用模拟进行测试,当我打开并发标志时,这些是唯一会爆炸的测试。感谢您提供这些详细信息。但是,如果没有可复制的示例,恐怕我们无法对这种行为的原因提出任何想法。您能为我们提供一组最小的测试文件和您使用的命令/文件吗se是否开始测试,以便我们能够在我们这方面重现此问题?