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'
]