使用Browserify和TypeScript模块的Wallaby

时间:2015-10-25 12:48:47

标签: testing typescript browserify wallaby.js

我正在尝试使用Browserify和Wallabify让Wallaby使用TypeScript应用程序。但是,当我运行Wallaby时,它输出 No failing tests, 0 passing ,并且所有测试指标都是灰色的。

文件app/spec.setup.ts负责加载节点模块依赖项,例如chai,sinon和应用程序的主模块。 app/spec.util.ts提供了一些帮助程序,由各个规范文件导入。

module.exports = function() {
  var wallabify = require('wallabify');

  var wallabyPostprocessor = wallabify({
        entryPatterns: [
          'app/spec.setup.ts',
          'app/src/**/*.spec.ts'
        ]
      }
  );

  return {
    files: [
      {pattern: 'app/spec.setup.ts', load: false, instrument: false},
      {pattern: 'app/spec.util.ts', load: false, instrument: false},
      {pattern: 'app/src/**/*.ts', load: false},
      {pattern: 'app/src/**/*.spec.ts', ignore: true}
    ],

    tests: [
      {pattern: 'app/src/**/*.spec.ts', load: false}
    ],

    testFramework: 'mocha',

    postprocessor: wallabyPostprocessor,

    bootstrap: function (w) {
      // outputs test file names, with .ts extensions changed to .js
      console.log(w.tests);

      window.__moduleBundler.loadTests();
    }
  };
};

有趣的是,我没有从更改entryPatterns获得任何反馈,甚至将其设置为空数组或无效文件名。结果仍然相同。只有当我将完全删除时,才会出现Can't find variable: sinon等错误。

我还认为entryPatterns列表可能需要已编译的文件名,即.js而不是.ts扩展名。但是,当我这样做时,我会在Postprocessor run failure: 'import' and 'export' may appear only with 'sourceType: module'上获得spec.setup.ts

我不知道配置Wallabify进行TypeScript编译的正确方法是什么,我在网上找不到任何完整的例子,所以我很感激任何提示。

P.S。使用我当前的StackOverflow信誉,我无法添加两个新标记:wallabywallabify。有人帮我一个忙,请加上两个标签。

1 个答案:

答案 0 :(得分:1)

因为TypeScript compiler renames files to .js and applied before wallabify,您需要更改这样的条目模式才能使其正常工作:

entryPatterns: [
      'app/spec.setup.js',
      'app/src/**/*.spec.js'
    ]