我们想编写一个对加载的文件执行源代码转换的Service Worker 。为了测试这个功能,我们使用 Karma。
我们的测试导入源文件,在这些文件上执行源代码转换。只有在 Service Worker 执行转换时测试才会成功,而在 Service Worker 不活动时测试会失败。
在本地,我们可以启动 KarmasingleRun: false
并观察更改的文件以重新启动测试。但是,Service Worker 对于最初加载它们的页面是不活动的。因此,除了第一个测试用例之外,每个测试用例都会成功。
但是,对于持续集成,我们需要单运行模式。因此,我们的 Service Worker 在测试运行期间是不活动的,因此会失败。此外,连续两次运行并不能解决此问题,因为 Karma 会重新启动使用过的浏览器(因此我们失去了 Service Worker)。
那么,问题来了,如何让 Service Worker 在测试运行中可用?例如,通过保留 karma 使用的浏览器实例。