通过npm test和jspm运行多个测试

时间:2015-10-29 12:03:36

标签: node.js ecmascript-6 babeljs jspm node.js-tape

我使用jspm来管理项目中的模块。

我想使用tape并使用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

这是我的package.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 个答案:

答案 0 :(得分:0)

1)你需要某种测试跑步者。考虑使用带有karma-jspm插件的业力:https://github.com/Workiva/karma-jspm因为你想使用磁带,考虑添加karma-tap https://github.com/mapbox/karma-tap

看起来你想在Node中测试你的代码,但由于JSPM是浏览器的包管理器,因此在浏览器/无头浏览器中使用karma和运行测试更有意义。

2)如果您需要测试一些非浏览器代码,请考虑将babel-node与传统的测试运行程序(如mocha)一起使用。你不需要JSPM。

3)看看这个示例项目https://github.com/curran/jspm-mocha-example我相信它成功地结合了jspm,mocha和节点执行