Запуск нескольких тестов через npm test и jspm
Я использую jspm для управления модулями в моем проекте.
Я хотел бы написать тесты, используя ленту и используя синтаксис ES6.
Я хотел бы иметь возможность запускать эти тесты из командной строки, используя npm test
,
Если я бегу jspm run test/example.js
тест запускается непосредственно из командной строки.
Если я добавлю
"scripts" : {
"test" : "jspm run test/example.js"
}
в package.json
а потом беги npm test
Тест проходит.
Пока все хорошо, но я бы хотел пройти несколько тестов в test
реж. jspm run
кажется, поддерживает только один модуль за один раз.
Если я заменю jspm run
с babel-node
, Я получил Error: Cannot find module 'tape'
, Эта ошибка имеет смысл для меня, т.е. babel-node
не знает где tape
только jspm
делает.
Так есть ли способ сказать npm test
"Запустите все эти тесты здесь, и если вы не можете найти модуль, спросите jspm"?
Вот мой образец теста
import test from 'tape';
test('A passing test', (assert) => {
assert.pass('This test will pass.');
assert.end();
});
test('Assertions with tape.', (assert) => {
const expected = 'something to test';
const actual = 'sonething to test';
assert.equal(actual, expected,
'Given two mismatched values, .equal() should produce a nice bug report');
assert.end();
});
Вот моя структура каталогов.
package.json
test
| - example.js
Вот мой пакет. Json
{
"name": "playground",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"jspm": {
"devDependencies": {
"babel": "npm:babel-core@^5.8.24",
"babel-runtime": "npm:babel-runtime@^5.8.24",
"core-js": "npm:core-js@^1.1.4",
"tape": "npm:tape@^4.2.2"
}
},
"devDependencies": {
"jspm": "^0.16.13"
},
"scripts" : {
"test" : "jspm run test/example.js" //<-- what should I put here?
}
}
1 ответ
1) Вам нужен какой-то тестовый бегун. Подумайте об использовании кармы с плагином karma-jspm: https://github.com/Workiva/karma-jspm Поскольку вы хотите использовать ленту, рассмотрите возможность добавления карма-крана https://github.com/mapbox/karma-tap
Похоже, что вы хотите протестировать свой код в Node, но, поскольку JSPM является менеджером пакетов для браузера, имеет больше смысла использовать карму и запускать тесты в браузере / безголовом браузере.
2) Если вам нужно протестировать некоторый небраузерный код, рассмотрите возможность использования babel-node с обычными тестовыми программами, такими как mocha. Вам не нужна JSPM для этого.
3) Взгляните на этот пример проекта https://github.com/curran/jspm-mocha-example Я считаю, что ему удалось объединить выполнение jspm, mocha и node.