先决条件
打字稿
Karma / Jasmine
的WebPack
应用
我有简单的TypeScript应用程序。还设置* .ts测试和karma框架来运行此测试。使用Webpack进行透明化。
以下是业力配置的一部分:
...
basePath: '',
frameworks: ['jasmine','sinon'],
files: [
'src/test/spec/**/*.ts'
],
preprocessors: {
'src/**/*.ts': ['webpack', 'sourcemap']
},
webpack: {
debug: true,
devtool: 'inline-source-map',
module: webpackConfig.module,
resolve: webpackConfig.resolve
},
webpackMiddleware: {
quiet: true,
stats: {
colors: true
}
}
...
和webpack配置
...
resolve: {
extensions: ['.ts', '.js', '.tsx', '.jsx', '']
},
module: {
loaders: [{
test: /\.tsx?$/,
exclude: /node_modules/,
loader: 'ts-loader'
}
]
}
...
一切正常,测试是使用TypeScript编写的,PhantomJS用作无头浏览器。它有效。
问题
但是我在调查失败的测试时遇到了问题,因为写入控制台的堆栈跟踪不正确 - 它总是指向测试源文件,甚至在其他地方发生了问题。
作为一个例子 - 我在karma启动器之后分享我的控制台输出
TypeError: 'undefined' is not a constructor (evaluating 'new vRef(this)')
at src/test/spec/validations/required.ts:1764
at DataBase (src/test/spec/validations/required.ts:1690)
at src/test/spec/validations/required.ts:50
at http://localhost:9880/context.js:151
其中'src / test / spec / validations / required.ts' - 这是我的测试文件,但堆栈跟踪真正经过了3个不同的文件。
如何修正输出数据以正确指向失败的地方?如果有人可以与我分享我的配置或设置问题,将非常感激。