访问Karma Jasmine中的文件系统

访问Karma Jasmine中的文件系统,jasmine,karma-jasmine,karma-runner,Jasmine,Karma Jasmine,Karma Runner,我的库中有一堆HTML5画布测试,我通过Karma和Jasmine运行这些测试。如果我在测试中检测到差异,我会在浏览器页面上显示画布DOM元素以及生成的图像输出和差异。但是,当我在Chrome Headless和/或CI环境中运行测试时,如果测试结果失败,我无法检查测试结果。这就是我目前面临的问题:当我用UI运行测试时,它们是绿色的,如果我用Chrome Headless运行它们,它们会失败,但我没有机会检查我的视觉输出 作为解决方案,我想将生成的图像写入磁盘。在本地测试中,我可以检查这个文件夹

我的库中有一堆HTML5画布测试,我通过Karma和Jasmine运行这些测试。如果我在测试中检测到差异,我会在浏览器页面上显示画布DOM元素以及生成的图像输出和差异。但是,当我在Chrome Headless和/或CI环境中运行测试时,如果测试结果失败,我无法检查测试结果。这就是我目前面临的问题:当我用UI运行测试时,它们是绿色的,如果我用Chrome Headless运行它们,它们会失败,但我没有机会检查我的视觉输出

作为解决方案,我想将生成的图像写入磁盘。在本地测试中,我可以检查这个文件夹在CI上发生了什么,我可以将结果图像作为工件发布。但问题来了:业力和茉莉花似乎没有合适的机制来完成这项任务。此外,我也找不到任何插件来解决从测试中正确访问本地文件系统这一难题

另一个棘手的方面是,我不能在保存文件的地方使用promise(异步/等待)操作。我在一个Jasmine CustomMatcher中,它没有承诺支持,我可以尝试重新编写我的测试,以处理向Jasmine报告的错误

我迄今为止的努力:

  • 我从一个自定义Karma reporter开始,它监听浏览器日志,并可能将此用作将图像字节移交给节点以写入磁盘的通道。但是这个额外的插件注册扰乱了我的整体Karma配置。一旦我注册了我的定制报告器,Karma和Rollup就不再起作用了,我从未发现如此大的字节量是否可以通过这个渠道传输
  • 然后,我通过
    karma express http服务器开始了一个API,在那里我“上传”了要保存的文件。但我中途停了下来,因为这样一个简单的任务似乎又需要一堆lib和自定义实现才能运行一个简单的文件上传(karmaexpresshttpserver,multer)。我还需要依赖于这里的同步Ajax调用,这并不是真正的未来证明
    
  • 本机文件系统API严重依赖于承诺,因此我无法使用它 在使用Karma和Jasmine时,必须有一种更简单的方法将文件作为测试的一部分写入磁盘