尝试将业力设置为单元测试我的ES6转换代码。完整的工具链是:Typescript - > ES6 - > Babel - > browserify。
在Karma之外我有这个链工作正常(使用Gulp)。
通过我的Karma设置,我在Typescript步骤中遇到错误:
错误TS2318:找不到全局类型'IterableIterator'。 12 03 2016 16:52:09.323:ERROR [preprocessor.typescript]:错误TS2318:找不到全局类型'Iterator'。
错误TS2318:找不到全局类型“Iterator”。 12 03 2016 16:52:09.323:ERROR [preprocessor.typescript]:错误TS2318:找不到全局类型'符号'。
这是我的karma.conf
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
// frameworks to use
frameworks: ['browserify','jasmine'],
preprocessors: {
'src/**/test.ts' : ['typescript', 'babel', 'browserify'],
'tests/**/tests.spec.js' : ['babel', 'browserify']
},
typescriptPreprocessor: {
options: {
target: 'es6'
}
},
babelPreprocessor: {
options: {
presets: ['es2015'],
sourceMap: 'inline'
}
},
browserify: {
debug:true
},
files: [
'src/**/test.ts',
'tests/**/*.js'
],
// list of files to exclude
exclude: [
],
// test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: ['progress'],
// web server port
port: 9876,
plugins: [
'karma-typescript-preprocessor',
'karma-babel-Preprocessor',
'karma-browserify',
'karma-jasmine',
'karma-firefox-launcher',
'karma-chrome-launcher'
],
// enable / disable colors in the output (reporters and logs)
colors: false,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
browsers: ['Chrome'],
// If browser does not capture in given timeout [ms], kill it
captureTimeout: 60000,
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false
});
};
这是我的test.ts文件:
"use strict"
function thisIsAtest(myParam:string) {
const pi = 3.14;
}
新手稿和我的谷歌权力让我失望了):
更新:所以上面的配置使用了babel和打字稿karma 预处理程序。我仍然无法让工具链工作。但是我可以通过让karma-browserify直接处理转换来实现我的最终目标。所以我的browserify部分现在看起来像这样:
browserify: {
debug: true,
plugin: ['tsify'],
transform: [['babelify', {presets:["es2015"], extensions:[".ts",".js"] }]]
},
注意变换部分中的双括号 - 忘记那些在我最初开始沿着这条路走的时候绊倒了我。