在业力测试中显示正确的堆栈跟踪

Vad*_*imB 7 javascript typescript karma-runner webpack

先决条件

  • 打字稿

  • 业力/茉莉花

  • 的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
        }
    }
    ...
Run Code Online (Sandbox Code Playgroud)

和webpack配置

   ...
   resolve: {
       extensions: ['.ts', '.js', '.tsx', '.jsx', '']
   },
   module: {
       loaders: [{
               test: /\.tsx?$/,
               exclude: /node_modules/,
               loader: 'ts-loader'
           }
       ]
   }
   ...
Run Code Online (Sandbox Code Playgroud)

一切正常,测试是使用TypeScript编写的,PhantomJS用作无头浏览器.有用.

问题

但是我在调​​查失败的测试时遇到了问题,因为写入控制台的堆栈跟踪不正确 - 它总是指向测试源文件,甚至在其他地方发生问题.

举个例子 - 我在业力发射器之后分享我的控制台输出

  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
Run Code Online (Sandbox Code Playgroud)

其中'src/test/spec/validations/required.ts' - 这是我的测试文件,但堆栈跟踪真正经过了3个不同的文件.

如何修复输出数据以正确指向失败的地方?如果有人可以与我分享我的配置或设置问题,将非常感激.