Karma Istanbul 修复以与 Chrome 的新版本一起使用
Karma Istanbul fix to work with new version of Chrome
在我的 AngularJs 应用程序中,我使用 Jasmine 和 Karma 进行单元测试。
最近,在 chrome 更新后(现在在 72.0.3626.81 上)我的单元测试在本地开始失败(没有更改代码)。我认为错误是我的覆盖工具 Instanbul 造成的。
有时会出现这样的错误:
afterAll Uncaught ReferenceError: __cov_iuQO6FdumXRPLjSMopb0JQ is not defined 抛出错误
其他时候它会出现在特定的单元测试中(不知道为什么)。
我搜索了我的应用程序,这个 __cov_
变量可能来自的唯一文件是 Instanbul 包中函数的 return,instrumenter.js
中的 generateTrackerVar()
。
由于没有进行任何代码更改,我认为问题出在 Chrome 的新版本上,可能是安全设置。
我的问题是 karama-coverage/istanbul 需要什么权限?或者,如果有人怀疑问题不是基于安全的,那么可能是什么导致了这个错误?
谢谢
编辑:
我试过像这样在我的 gulpfile 中禁用网络安全:
browsers: [ 'Chrome_without_security' ],
customLaunchers: {
Chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security']
}
},
但这并没有解决问题。有没有办法在此配置中设置 chrome 版本?
我设法通过在 __cov_
与抛出错误的测试文件相关之后找出哈希码来解决这个问题。我不知道为什么错误没有像往常一样出现,那将是另一个需要解决的问题。
现在我设法通过在 instanbul
包中登录 instrumenter.js
来找出文件。然后通过删除我的覆盖工具,我找出了问题的根源。简单地删除覆盖工具会给我一个不同的错误,但不会告诉我哪个文件,所以我需要同时执行这两个操作。
在我的 AngularJs 应用程序中,我使用 Jasmine 和 Karma 进行单元测试。
最近,在 chrome 更新后(现在在 72.0.3626.81 上)我的单元测试在本地开始失败(没有更改代码)。我认为错误是我的覆盖工具 Instanbul 造成的。
有时会出现这样的错误:
afterAll Uncaught ReferenceError: __cov_iuQO6FdumXRPLjSMopb0JQ is not defined 抛出错误
其他时候它会出现在特定的单元测试中(不知道为什么)。
我搜索了我的应用程序,这个 __cov_
变量可能来自的唯一文件是 Instanbul 包中函数的 return,instrumenter.js
中的 generateTrackerVar()
。
由于没有进行任何代码更改,我认为问题出在 Chrome 的新版本上,可能是安全设置。
我的问题是 karama-coverage/istanbul 需要什么权限?或者,如果有人怀疑问题不是基于安全的,那么可能是什么导致了这个错误?
谢谢
编辑: 我试过像这样在我的 gulpfile 中禁用网络安全:
browsers: [ 'Chrome_without_security' ],
customLaunchers: {
Chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security']
}
},
但这并没有解决问题。有没有办法在此配置中设置 chrome 版本?
我设法通过在 __cov_
与抛出错误的测试文件相关之后找出哈希码来解决这个问题。我不知道为什么错误没有像往常一样出现,那将是另一个需要解决的问题。
现在我设法通过在 instanbul
包中登录 instrumenter.js
来找出文件。然后通过删除我的覆盖工具,我找出了问题的根源。简单地删除覆盖工具会给我一个不同的错误,但不会告诉我哪个文件,所以我需要同时执行这两个操作。