离子2:用茉莉和karma错误'ng test'测试

时间:2017-03-27 10:01:37

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

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

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',但它存在于我的模块文件夹中......

有人有想法吗?

2 个答案:

答案 0 :(得分:3)

我认为您的问题是karma.conf.js 仍然指着旧的angular-cli 这已重命名为@angular/cli

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

karma.conf.js的格式也发生了变化,因此可能需要更新。

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

答案 1 :(得分:1)

目前看来有三种单元测试离子2项目的方法。

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

    离子博客:“我们也正在进行烘焙单元测试,直接进入Ionic CLI(或更准确地说,@ ionic / app-scripts)。请继续关注。”

    如果你可以等一下,我会等待Ionic CLI版本。从长远来看,它可能会给你带来最少的问题,因为离子团队将继续运行它将带来所有新的闪亮的离子良好。