2.6.8
https://jsfiddle.net/chrisvfritz/50wL7mdz/
我正在尝试隔离最新版本的最新版本的vue / dist / vue.js文件,但它似乎与最近添加的新代码有关。 如果您仍然不观察,将尽快添加更多步骤。
1)复制此仓库-https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2)克隆它
3)npm我
4)NPM测试-没有错误
4)npm更新vue
5)npm测试-ReferenceError:性能未定义
问候,
普拉门
没有观察到错误
观察到错误
报告错误时请提供副本
嗨@posva ,
这个问题没有用在线编辑器复制,但是我在GitHub的“复制步骤”部分提供了步骤。
问候,
普拉门
您链接到的内容是一个已归档且已弃用的示例。 一个repro不必一定是jsfiddle,它可以是一个HTML文件(或只是它的内容)。 它还不应包含其他依赖项,例如mocha或vue-test-utils(在该软件包上可能是个问题)。 干杯。
也得到这个。 Vue升级到2.6.9后,我的CI发出了警告(我使用Renovate来使部门保持最新状态)。
看来在jsdom环境中:
> window.performance
Performance {}
> performance
ReferenceError: performance is not defined
因此,我们必须使用window.performace
而不是直接调用performance
来使代码在jsdom中正确运行。
好的,我想我在添加标签改进之前打开了菜单,并在添加具有PR标签之后单击了外部,因此将其删除了。 有趣的边缘案例
应该注意的是,尽管JSDOM通过process.hrtime
提供了performance
支持,但我认为我们不能保证当前使用performance
黑客攻击在JSDOM环境下始终可以正常工作(毕竟与浏览器的实现不同)。
@ posva😂
在此版本发布之前,一种解决方法是在JSDOM注册之后添加以下行:
// eslint-disable-next-line no-undef
global.performance = window.performance;
在此版本发布之前,一种解决方法是在JSDOM注册之后添加以下行:
// eslint-disable-next-line no-undef global.performance = window.performance;
抱歉,我很愚蠢,但由于在Vue CLI 3和cli-plugin-unit-mocha(无setup.js)中抽象了JSDOM注册,因此我应该在下面添加以下行吗?
谢谢您的帮助...
// eslint-disable-next-line no-undef
global.performance = window.performance;
同样的问题。 在哪里添加以下行?
@theonlychase我将其放在我的主测试入口点test/setup.js
,该目录包含您的require('jsdom-global')
在--require
标志下方引用。
"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
最有用的评论
看来在jsdom环境中:
因此,我们必须使用
window.performace
而不是直接调用performance
来使代码在jsdom中正确运行。