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

时间:2016-11-03 17:03:38

标签: javascript typescript webpack karma-runner

先决条件

  • 打字稿

  • 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个不同的文件。

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

0 个答案:

没有答案