Этот пост StackOverflow репост из моих вопросов на https://github.com/frankwallis/plugin-typescript/issues/64 и https://github.com/Workiva/karma-jspm/issues/112JSPM + карма + карма-JSPM + плагин-машинопись
Мы планируем обновить наш стек команды для веб-интерфейс, поэтому мы решили:
1) использовать карму в качестве тест пусковой установки и жасмин в рамках (мокко и пользовательских бегунов до)
2) использовать машинопись для исходного кода с UMD или системного модуля из (чистый Javascript до)
3) использовать SystemJS как модуль загрузчика т о позволяют типам использовать различный модуль (CommonJS, AMD, система, ES6) без перегрева (RequireJS до)
Дополнительно:
1) мы хотим запустить тесты непосредственно из машинописи кода без прекомпиляции и хранение JS на диске
2) мы хотим иметь тестовую среду расположение очень близко к производственному макету
3) мы имеем установку карму + жасмин + карма-машинопись-препроцессор и он работает хорошо. НО мы хотим работать с загрузчиком JSPM/SystemJS, в то время как в этом случае мы будем уверены, что наша тестовая среда соответствует продукции, в которой используется загрузчик SystemJS. Безусловно, для другой руки нам потребуется написать некоторые пользовательские загрузочные вещи для тестирования.
Но у нас есть проблемы с кармой + jspm + typescript-plugin (jspm).
В JSPM»./config.js'
System.config({
baseURL: "/",
"transpiler": false,
"packages": {
"src": {
"main": "test.ts",
"defaultExtension": "ts",
"meta": {
"*.ts": {
"loader": "ts"
},
"*.js": {
"loader": "ts"
}
}
}
},
paths: {
"npm:*": "jspm/npm/*",
"github:*": "jspm/github/*"
},
map: {
"ts": "github:frankwallis/[email protected]",
"typescript": "npm:[email protected]",
"github:frankwallis/[email protected]": {
"typescript": "npm:[email protected]"
}
}
});
В Карма конфигурации:
// Karma configuration
// Generated on Mon Nov 30 2015 02:58:44 GMT+0500 (RTZ 4 (зима))
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jspm','jasmine'],
plugins:[
"karma-jspm",
'karma-jasmine',
'karma-chrome-launcher'
],
jspm: {
loadFiles: ['src/test.ts'], //we just try to check one simple test
packages: "jspm/"
} ,
proxies : { // avoid Karma's ./base virtual directory
'/src/': '/base/src/',
'/jspm/': '/base/jspm/'
},
reporters: ['progress'],
port: 9876,
browsers: ['Chrome']
})
}
Но что-то идет не так:
30 11 2015 14:53:34.564:WARN [web-server]: 404: /jspm/github/frankwallis/pl
[email protected]
Chrome 46.0.2490 (Windows 10 0.0.0) ERROR: 'Potentially unhandled rejection [6]
Error: XHR error (404 Not Found) loading http://localhost:9876/jspm/github/frank
wallis/[email protected]
at error (http://localhost:9876/base/jspm/system.src.js?6536115be64e0ff966e0
5546f7767676fa7c03d6:1020:16)
at XMLHttpRequest.xhr.onreadystatechange (http://localhost:9876/base/jspm/sy
stem.src.js?6536115be64e0ff966e05546f7767676fa7c03d6:1028:13)'
И мы проверили, что URL действителен : для ex /jspm/github/frankwallis/[email protected]\utils.js
хорошо обслуживается кармой. Я не понимаю, почему он пытается загрузить весь каталог плагинов типов.
Итак, мы имеем вопрос:
1) Является ли это ошибка или наш провал в понимании/конфигурации
2) Если это наш провал - как это исправить?
3) Может быть, мы не выбрали правильные способы тестирования с помощью Karma + JSPM + Typcript?
Любой совет будет полезен.