Dav*_*bec 4 testing karma-runner zone.js angular
我对业力v1.4有问题。测试框架。我所有的单元测试现在都因错误而失败Cannot read property 'assertPresent' of undefined at resetFakeAsyncZone
我已经在寻找解决方案并对其进行了测试,但不幸的是,没有任何帮助。解决方案建议我应该更改test.js文件中的导入顺序。我已经做到了。
这是我正在使用的建议顺序,但仍然失败:
import 'zone.js/dist/zone.js'; // 1st
import 'zone.js/dist/async-test'; // 2nd
import 'zone.js/dist/fake-async-test'; // 3rd
import 'zone.js/dist/long-stack-trace-zone'; // 4th
import 'zone.js/dist/sync-test'; // 5th
import 'zone.js/dist/proxy.js'; // 6th
import 'zone.js/dist/jasmine-patch'; // 7th
Run Code Online (Sandbox Code Playgroud)
PS:我使用的是VS Code,它现在在保存文件时自动对导入进行排序,从而更改了我的自定义导入顺序,在这种情况下,这非常烦人。我不知道如何仅针对特定文件禁用它,因此我必须在记事本中编辑test.js文件。
使用哪个版本zone.js
?
在的较新版本中zone.js
,无需分别加载每个测试库。
将以下内容放在的顶部test.ts
。
import 'zone.js/dist/zone-testing';
Run Code Online (Sandbox Code Playgroud)
注意:此导入在任何其他导入之前都非常重要!
这是订单,您可以添加以下内容:
// tslint:disable-next-line:ordered-imports
Run Code Online (Sandbox Code Playgroud)
禁用下一行的导入顺序
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
// tslint:disable-next-line:ordered-imports
import 'zone.js/dist/jasmine-patch';
// tslint:disable-next-line:ordered-imports
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
Run Code Online (Sandbox Code Playgroud)
或为该块禁用它
// tslint:disable:ordered-imports
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
Run Code Online (Sandbox Code Playgroud)
并像这样运行测试以查看确切的错误:
ng test -sm=false
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2643 次 |
最近记录: |