-->

不能让实习生运行Node.js的模块(Can't get Intern to run Nod

2019-09-02 10:04发布

我想测试实习生,看它是否将是一个非常适合测试框架。 我想测试中实习生下面的代码。

var HelloWorld;

HelloWorld = (function () {

  function HelloWorld (name) {
    this.name = name || "N/A";
  }

  HelloWorld.prototype.printHello = function() {
    console.log('Hello, ' + this.name);
  };

  HelloWorld.prototype.changeName = function(name) {
    if (name === null || name === undefined) {
      throw new Error('Name is required');
    }
    this.name = name;
  };

  return HelloWorld;

})();

exports = module.exports = HelloWorld;

该文件位于“JS-测试项目/节点/ LIB / HelloWorld.js”和实习生位于“JS-测试项目/实习生”。 我使用实习生的1.0.0分支。 每当我试着包括文件和运行测试,我不“违约安慰记者”后得到任何输出。 下面是测试文件。

define([
  'intern!tdd',
  'intern/chai!assert',
  'dojo/node!../lib/HelloWorld'
], function (tdd, assert, HelloWorld) {
  console.log(HelloWorld);
});

Answer 1:

1.假设以下目录结构(基于问题):

js-test-projects/
    node/
        lib/
            HelloWorld.js   - `HelloWorld` Node module
        tests/
            HelloWorld.js   - Tests for `HelloWorld`
            intern.js       - Intern configuration file
    intern/

2.您的实习生配置文件应包含的信息node包以及任何套房运行:

// ...

// Configuration options for the module loader
loader: {
    // Packages that should be registered with the loader in each testing environment
    packages: [ 'node' ]
},

// Non-functional test suite(s) to run
suites: [ 'node/tests/HelloWorld' ]

// ...

3.您的测试文件应加载HelloWorld使用实习生的版本道场的,就像这样:

define([
    'intern!tdd',
    'intern/chai!assert',
    'intern/dojo/node!./node/lib/HelloWorld.js'
], function (tdd, assert, HelloWorld) {
    console.log(HelloWorld);
});

注意:不必使用实习生的版本的Dojo加载HelloWorld节点模块在这个AMD测试中,它仅仅是这样做的一种便捷方式。 如果你有一些其他的AMD插件,节点需要一个节点模块,这是完全正常的。

4.最后,运行在Node.js的环境测试,使用实习生的client.js节点亚军由来自中发出以下命令intern目录:

node client.js config=node/tests/intern


文章来源: Can't get Intern to run Node.js Module
标签: intern