javascript - 如何将全局模块包含到角度的规范文件中
问题描述
我遇到了一个问题,在我的开发设置中(gitlab-runner 与 docker 执行 karma-runner 进行测试)我选择的浏览器 Phantom.js 开始吐出动画错误(更多信息在这里:https ://github.com/angular/材料2/问题/14210)。由于 puppeteer 大约有 ~280mb,我不想在 runner 管道上用它替换 phantomjs。有没有办法在执行每个规范文件之前包含全局模块?这样我可以通过导入 NoopAnimationsModule 来停止动画。
从 gitlab-runner 管道导出。
PhantomJS 2.1.1 (Linux 0.0.0) LayoutComponent should create FAILED
TypeError: undefined is not an object (evaluating 'getAnimationStyle(element, '').trim') in http://localhost:9876/_karma_webpack_/vendor.js (line 5211)
applyKeyframeAnimation@http://localhost:9876/_karma_webpack_/vendor.js:5211:46
apply@http://localhost:9876/_karma_webpack_/vendor.js:5170:31
init@http://localhost:9876/_karma_webpack_/vendor.js:5334:27
play@http://localhost:9876/_karma_webpack_/vendor.js:5340:18
play@http://localhost:9876/_karma_webpack_/vendor.js:4858:95
http://localhost:9876/_karma_webpack_/vendor.js:4638:24
<Jasmine>
_flushAnimations@http://localhost:9876/_karma_webpack_/vendor.js:4631:28
flush@http://localhost:9876/_karma_webpack_/vendor.js:4280:48
flush@http://localhost:9876/_karma_webpack_/vendor.js:5128:37
http://localhost:9876/_karma_webpack_/vendor.js:135595:35
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11874:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:208197:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11873:60
run@http://localhost:9876/_karma_webpack_/polyfills.js:11633:49
runOutsideAngular@http://localhost:9876/_karma_webpack_/vendor.js:78855:31
end@http://localhost:9876/_karma_webpack_/vendor.js:135593:41
end@http://localhost:9876/_karma_webpack_/vendor.js:85716:30
detectChanges@http://localhost:9876/_karma_webpack_/vendor.js:83201:23
_tick@http://localhost:9876/_karma_webpack_/vendor.js:86262:45
http://localhost:9876/_karma_webpack_/vendor.js:86276:54
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11874:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:208197:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11873:60
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:78896:39
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11873:60
run@http://localhost:9876/_karma_webpack_/polyfills.js:11633:49
run@http://localhost:9876/_karma_webpack_/vendor.js:78810:31
detectChanges@http://localhost:9876/_karma_webpack_/vendor.js:86276:28
http://localhost:9876/_karma_webpack_/main.js:6430:30
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11874:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:208197:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11873:60
run@http://localhost:9876/_karma_webpack_/polyfills.js:11633:49
runInTestZone@http://localhost:9876/_karma_webpack_/vendor.js:208418:37
http://localhost:9876/_karma_webpack_/vendor.js:208433:33
<Jasmine>
http://localhost:9876/_karma_webpack_/vendor.js:208734:35
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11874:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:208197:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11873:60
run@http://localhost:9876/_karma_webpack_/polyfills.js:11633:49
http://localhost:9876/_karma_webpack_/vendor.js:208733:32
http://localhost:9876/_karma_webpack_/vendor.js:208565:45
invokeTask@http://localhost:9876/_karma_webpack_/polyfills.js:11906:36
runTask@http://localhost:9876/_karma_webpack_/polyfills.js:11678:57
invokeTask@http://localhost:9876/_karma_webpack_/polyfills.js:11981:41
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:11970:52
timer@http://localhost:9876/_karma_webpack_/polyfills.js:13764:34
PhantomJS 2.1.1 (Linux 0.0.0): Executed 5 of 10 (1 FAILED) (0 secs / 2.575 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 6 of 10 (1 FAILED) (0 secs / 3.274 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 7 of 10 (1 FAILED) (0 secs / 4.01 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 8 of 10 (1 FAILED) (0 secs / 4.069 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 9 of 10 (1 FAILED) (0 secs / 4.112 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 10 of 10 (1 FAILED) (0 secs / 4.457 secs)
PhantomJS 2.1.1 (Linux 0.0.0): Executed 10 of 10 (1 FAILED) (4.896 secs / 4.457 secs)
TOTAL: 1 FAILED, 9 SUCCESS
我如何在不切换到 puppeteer 的情况下解决这个问题,因为这会显着改变跑步者的图像大小,并且执行时间会慢几倍。有没有办法在特定的 .spec 文件的测试平台之前包含要导入的全局模块?
解决方案
推荐阅读
- python - 如何在类中声明装饰器,以装饰已经装饰的继承方法?
- c# - 使用 CsvHelper 时如何从 C# 动态对象中获取属性名称和值?
- node.js - ubuntu 中的 webpack 和 npm 包安装问题
- time-series - Azure 数据资源管理器中使用什么算法进行预测?
- momentjs - momentjs - 将 PM 时间字符串转换为时刻无法正常工作
- php - Laravel:在选择框上显示 stdClass 对象值
- java - 为什么 Java TinyB 看不到 hcitool 看到的相同设备?
- java - 如何在 Jenkins 中查看 excel 报告?
- python - 如果值不包含字符串,则用正则表达式替换 Pandas Dataframe 中的值
- sql - 在此示例中如何连接两个表