Ionic 3 - 导入TestBed时出现Angular错误:afterAll \ nUncaught

问题描述 投票:0回答:1

我正在研究Ionic 3应用程序,当我想使用TestBed类时,我遇到了问题。我使用这些命令来创建项目。

ionic start myApp tabs
npm install karma-cli -g
npm install karma --save-dev
npm install jasmine --save-dev
npm install karma-jasmine --save-dev
npm install @types/jasmine --save-dev
npm install jasmine-core --save-dev
npm install ts-node --save-dev
npm install angular-cli --save-dev

我用karma来创建这个karma.conf.js:

module.exports = function(config) {
  config.set({
    basePath: '',

    frameworks: ['jasmine'],

    files: [
      'src/**/*Spec.js'
    ],

    exclude: [
    ],

    preprocessors: {
    },

    reporters: ['progress'],

    port: 9876,

    colors: true,

    logLevel: config.LOG_INFO,

    autoWatch: true,

    browsers: ['Chrome'],

    singleRun: false,

    concurrency: Infinity
  })
}

我用这个内容创建了src / app / pages / home / homeSpec.js文件:

import { TestBed } from '@angular/core';

describe("some tests", () => {

  it("True", function () {
    expect(true).toEqual(true);
  });

});

当我使用karma start时,我得到以下输出:

------------------- without TestBed import ----------------
27 02 2018 23:45:55.793:WARN [karma]: No captured browser, open http://localhost:9876/
27 02 2018 23:45:55.807:INFO [karma]: Karma v2.0.0 server started at http://0.0.0.0:9876/
27 02 2018 23:45:55.808:INFO [launcher]: Launching browser Chrome with unlimited concurrency
27 02 2018 23:45:55.812:INFO [launcher]: Starting browser Chrome
27 02 2018 23:45:57.600:INFO [Chrome 64.0.3282 (Mac OS X 10.13.3)]: Connected on socket ysC5F7d28isYt8oAAAAA with id 47800734
Chrome 64.0.3282 (Mac OS X 10.13.3): Executed 1 of 1 SUCCESS (0.002 secs / 0 secs)

------------------- with TestBed import ----------------
27 02 2018 23:46:04.564:INFO [watcher]: Changed file "/Volumes/JedemaKey/ionic_book/Chapitres/ionic/testtest/myApp/src/pages/home/homeSpec.js".
Chrome 64.0.3282 (Mac OS X 10.13.3) ERROR
  {
    "message": "An error was thrown in afterAll\nUncaught SyntaxError: Unexpected token {",
    "str": "An error was thrown in afterAll\nUncaught SyntaxError: Unexpected token {"
  }
Chrome 64.0.3282 (Mac OS X 10.13.3): Executed 0 of 0 ERROR (0.018 secs / 0 secs)

为什么我会收到此错误?如何导入TestBed类?

编辑

我得到相同的错误我可以导入另一个类,如下面的代码:

import { Component } from '@angular/core';
// This line works in .ts module in same directory.

describe("Test de la page informations", () => {

  it("True", function () {
    expect(true).toEqual(true);
  });

});

如果我将.ts扩展名提交给文件,我会得到同样的错误...

你有解决方案吗 ?

javascript angular unit-testing testing ionic-framework
1个回答
0
投票

最后,我在这个Github页面(qazxsw poi)中找到了解决方案。我使用这个命令将jasmine版本降级到2.99.0:

https://github.com/ionic-team/ionic-unit-testing-example/issues/79
© www.soinside.com 2019 - 2024. All rights reserved.