【问题标题】:Ionic 2 : Test with jasmine and karma error 'ng test'Ionic 2:用茉莉花和业力错误进行测试'ng test'
【发布时间】:2017-08-19 23:38:11
【问题描述】:

我尝试按照本教程进行操作:

http://lathonez.com/2017/ionic-2-unit-testing/

当我运行“ng test”时出现这个错误:

C:\xampp\htdocs\AppFineMobile>ng test
27 03 2017 11:55:00.556:ERROR [preprocess]: Can not load "angular-cli", it is not registered!
  Perhaps you are missing some plugin?
No provider for "framework:angular-cli"! (Resolving: framework:angular-cli)
Error: No provider for "framework:angular-cli"! (Resolving: framework:angular-cli)
    at error (C:\xampp\htdocs\AppFineMobile\node_modules\di\lib\injector.js:22:12)
    at Object.get (C:\xampp\htdocs\AppFineMobile\node_modules\di\lib\injector.js:9:13)
    at Injector.get (C:\xampp\htdocs\AppFineMobile\node_modules\di\lib\injector.js:54:19)
    at C:\xampp\htdocs\AppFineMobile\node_modules\karma\lib\server.js:143:20
    at Array.forEach (native)
    at Server._start (C:\xampp\htdocs\AppFineMobile\node_modules\karma\lib\server.js:142:21)
    at Injector.invoke (C:\xampp\htdocs\AppFineMobile\node_modules\di\lib\injector.js:75:15)
    at Server.start (C:\xampp\htdocs\AppFineMobile\node_modules\karma\lib\server.js:103:18)
    at Promise (C:\xampp\htdocs\AppFineMobile\node_modules\@angular\cli\tasks\test.js:35:25)
    at Class.run (C:\xampp\htdocs\AppFineMobile\node_modules\@angular\cli\tasks\test.js:15:16)
    at Class.run (C:\xampp\htdocs\AppFineMobile\node_modules\@angular\cli\commands\test.js:99:25)
    at Class.<anonymous> (C:\xampp\htdocs\AppFineMobile\node_modules\@angular\cli\ember-cli\lib\models\command.js:134:17)
    at process._tickCallback (internal/process/next_tick.js:103:7)

我不明白我必须做什么。我一开始就运行了这个命令:

npm install --save-dev @angular/cli @types/jasmine @types/node jasmine-core jasmine-spec-reporter karma karma-chrome-launcher karma-cli karma-jasmine karma-jasmine-html-reporter karma-coverage-istanbul-reporter

效果很好,我添加了教程中提到的所有文件...

在我的 test.ts 文件中,我的导入有错误:

import { getTestBed, TestBed } from '@angular/core/testing';

我有:找不到模块“@angular/core/testing”,但它存在于我的模块文件夹中...

有人有想法吗?

【问题讨论】:

  • 试试npm run test
  • 此命令运行“ng test”命令。所以我有同样的问题。

标签: node.js angular testing ionic2 karma-jasmine


【解决方案1】:

我认为你的问题是karma.conf.js 还在指着旧的angular-cli 这已重命名为@angular/cli。

如果您将karma.conf.js 文件中的所有angular-cli 更改为@angular/cli,这应该会为您指明正确的方向。

karma.conf.js 的格式也已更改,因此可能需要更新。

有关更新文档,请参阅 https://github.com/angular/angular-cli/wiki/stories-rc.0-update

【讨论】:

  • 我更新了我的 karma.conf.js 并且出现了这个新错误:当我运行 ng test 时“无法读取未定义的属性‘长度’”...
  • 我已经恢复使用 angular-cli。
  • @V.Pivet - 我遇到了同样的问题,最终我通过更改 angular-cli.json 中的“main”条目来修复它 - Ionic 2 将 main.ts 放在“src/app”中,而 Angular 将其放在“src”中。
【解决方案2】:

目前似乎有三种方法可以对 ionic 2 项目进行单元测试。

  1. angular-cli (已弃用但对我来说很好)
  2. @angular/cli (如果您已经有 angular-cli 设置,那么新的闪亮但也很难升级) http://lathonez.com/2017/ionic-2-unit-testing/
  3. 使用“离子测试”调用的脚本(有关详细信息,请参阅 ionic 博客和测试示例链接) http://blog.ionic.io/basic-unit-testing-in-ionic/

很快就会有另一种方式

ionic 博客:“我们还致力于将单元测试直接烘焙到 Ionic CLI(或更准确地说,@ionic/app-scripts)中。敬请期待。”

如果您可以稍等一下,我会等待 Ionic CLI 版本。从长远来看,它可能会给您带来最少的问题,因为 ionic 团队将保持它运行,所有新的闪亮的 ionic 优点都会随之而来。

【讨论】:

    猜你喜欢
    • 2017-01-15
    • 1970-01-01
    • 2014-12-12
    • 2016-06-15
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多