Wallaby с модулями Browserify и TypeScript

Я пытаюсь заставить Wallaby работать с приложением TypeScript, используя Browserify и Wallabify. Тем не менее, когда я запускаю 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 list может понадобиться скомпилированные имена файлов, т.е. .js вместо .ts расширение. Однако, когда я делаю это, я получаю Postprocessor run failure: 'import' and 'export' may appear only with 'sourceType: module' на spec.setup.ts,

Я не знаю, как правильно настроить Wallabify для компиляции TypeScript, и я не смог найти полных примеров в Интернете, поэтому буду благодарен за любые подсказки.

PS с моей текущей репутацией Stackru я не смог добавить два новых тега: wallaby а также wallabify , Может ли кто-нибудь сделать мне одолжение и добавить два тега, пожалуйста.

1 ответ

Решение

Поскольку компилятор TypeScript переименовывает файлы в .js и применяется перед wallabify, вам нужно изменить свои шаблоны входа, чтобы это работало:

entryPatterns: [
      'app/spec.setup.js',
      'app/src/**/*.spec.js'
    ]
Другие вопросы по тегам