2016-06-22 6 views
0

Я пытаюсь запустить базовый тест-карма-жасмин, но я получаю следующую ошибку.Ошибка проверки кармы/жасмина: «Непризнанный TypeError: Неожиданный анонимный вызов System.register».

Chrome 51.0.2704 (Windows 7 0.0.0) ERROR 
    Uncaught TypeError: Unexpected anonymous System.register call. 
    at D:/git/ui-components/jspm_packages/system.src.js:2891 


Chrome 51.0.2704 (Windows 7 0.0.0): Executed 0 of 0 SUCCESS (0 secs/0 secs) 

Тест также не работает.
структуры папок выглядят следующим образом:

  • компоненты
    - [отдельные компоненты]
    -тестов папка с простым тестом
    -app.js (включает в себя мастер-компонент, который вызывает все дочерние компоненты)

Приложение работает нормально, но я столкнулся с множеством проблем с тестированием.
Любые виды помощи приветствуются.

Ниже мой файл package.json

{ 
    "name": "ui-components", 
    "version": "1.0.0", 
    "description": "POC", 
    "main": "index.js", 
    "scripts": { 
    "install": "jspm install && typings install", 
    "start": "gulp serve" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "gulp": "^3.9.1", 
    "gulp-typescript": "^2.12.2", 
    "gulp-watch": "^4.3.5", 
    "jasmine": "^2.4.2", 
    "jasmine-core": "^2.4.1", 
    "jspm": "^0.16.30", 
    "karma": "^0.13.22", 
    "karma-chrome-launcher": "^0.2.3", 
    "karma-cli": "file:C:\\Users\\*********\\Downloads\\karma-cli-master", 
    "karma-jasmine": "^0.3.6", 
    "karma-jspm": "^2.0.2", 
    "lite-server": "^2.2.0", 
    "typescript": "^1.8.10", 
    "typings": "^1.0.4" 
    }, 
    "jspm": { 
    "dependencies": { 
     "angular": "github:angular/[email protected]^1.5.0", 
     "angular-route": "github:angular/[email protected]^1.5.0", 
     "bootstrap": "github:twbs/[email protected]^3.3.6", 
     "css": "github:systemjs/[email protected]^0.1.20" 
    }, 
    "devDependencies": {} 
    } 
} 

karma.config.js файл

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', 'jspm'], 
    files: [ 
     'components/**/*.js', 
     'components/*.js', 
     'components/tests/*.spec.js' 
    ], 
    exclude: [ 
    ], 
    preprocessors: { 
    }, 
    reporters: ['progress'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false, 
    concurrency: Infinity 
    }) 
} 

firstTest.spec.js файл

import angular from 'angular'; 

describe("Hello World Tests",() => { 
    it("First",() => { 
     expect("TestString").toEqual(""); 
    }); 
}); 

Index.html файл

<html ng-app="app"> 
    <head> 
     <script src="jspm_packages/system.js"></script> 
     <script src="config.js"></script> 
     <link rel="stylesheet" href="jspm_packages/github/twbs/[email protected]/css/bootstrap.css" /> 
     <link rel="stylesheet" href="style.css" /> 
     <script> 
       System.import("components/app.js"); 
     </script> 
    </head> 
    <body> 
     <main-component></main-component> 
    </body> 
</html> 

app.ts файл

import * as angular from 'angular' 
import 'components/mainComponent/mainComponent' 

angular.module("app", ['mainComponent']); 

ответ

0

Я понял, что мне нужно передать в моем .ts файлы JSPM массива объектов в karma.config.js файл. Я не мог просто передать файлы в следующий блок.

files: [ 
     'components/**/*.js', 
     'components/*.js', 
     'components/tests/*.spec.js' 
]` 

вместо этого это то, что требуется.

jspm: { 
    config: "config.js", 
    packages: "jspm_packages/", 
    loadFiles: ['components/**/*spec.js'], 
    serveFiles: ['components/**/*.js'] 
}, 

Надеюсь, это поможет кому-то еще.

 Смежные вопросы

  • Нет связанных вопросов^_^