Testing with NPM

这篇文章将会介绍怎么在node.js中使用three.js,以便做自动化测试。测试可以用命令行执行,也可以用Travis这样的自动化CI工具。

The short version

如果你很满意node 和 npm,

npm install three --save-dev

添加

var THREE = require('three');

到你的测试代码中。

Create a testable project from scratch

如果你不熟悉这些工具,以下是一个快速指导(给Linux的,Windows的安装过程将略有不同,但是npm命令是相同的)。

Basic setup

1 安装npm和node.js,最简单的方式是这样的:

sudo apt-get install -y npm nodejs-legacy
# fix any problems with SSL in the default registry URL
npm config set registry http://registry.npmjs.org/

2 给项目新建一个文件夹

mkdir test-example
cd test-example

3 用npm初始化项目文件

npm install

通过在所有提示上单击Enter来接受所有默认值。这会创建一个package.json。

4 通过如下命令来启动测试

npm test

会意料之中的执行失败。因为package.json中的test脚本是这个:

"test": "echo\"Error: not test specified\" && exit 1"

Add mocha

mocha
1 安装mocha

npm install mocha --sava-dev

注意,node_modules/被创建了,你的依赖在这个文件夹里面。而且用–save-dev命令后,属性devDependencies添加到了package.json中。

2 修改package.json文件,用mocha来测试。当测试被调用时,执行mocha并指定一个详细的reporter。默认情况下会执行test/里面的所有测试代码(没有test/就通过mkdir test创建,否则npm 会报npm ERR!,)

"test": "mocha --reporter list"

Add three.js

1 安装three.js

npm install three --save-dev

如果,你想要不同版本的three.js,用这个命令

npm show three version

看哪些版本是可用的,让后告诉npm 安装哪一个版本的

npm install three@0.84.0 --save

(0.84.0 只是一个例子),–save让three.js成为项目的依赖,而不是开发依赖。点击这里了解更多信息。

2 Mocha会查找test文件夹,所以我们创建一个:

mkdir test

3 最后,我们需要一个js文件来test。添加一个简单的测试来看看three.js对象是否可用可正常工作。创建文件test/verify-three.js:

var THREE = require('three');
var assert = require('assert');

describe('The THREE object', function(){
    it('should have a defined BasicShadowMap constant', function(){
        assert.notEqual('undefined', THREE.BasicShadowMap);
    });

    it('should be able to construct a Vector3 with default of x=0', function(){
        var vec3 = new THREE.Vector3();
        assert.equal(0, vec3.x);
    });
});

4 用npm test 执行测试。可以成功执行上面的测试,并且输入如下信息:

  ✓ The THREE object should have a defined BasicShadowMap constant: 0ms
  ✓ The THREE object should be able to construct a Vector3 with default of x=0: 0ms

  2 passing (6ms)

Add your own code

你需要做如下3件事情:
1. 为您的代码的预期行为编写一个测试,将它放在test/里面。这里有一个真实项目的例子。
2. 导出您的功能代码,使nodej可以看到它,以便与require一起使用。查看这里
3. 将你的代码导入测试文件中,像上面导入three.js一样,使用require。

步骤2和3依赖于你是怎么管理代码的。像上面的例子Physics.js一样,导出部分被放在尾部。用module.export来导出对象:

//=============================================================================
// make available in nodejs
//=============================================================================
if (typeof exports !== 'undefined') {
  module.exports = Physics;
}

Dealing with dependencies

如果您已经使用了像require.js或browserify这样的好东西,请跳过此部分。
典型的three.js项目是运行在浏览器中的。因此,模块加载由浏览器执行一堆脚本标签来完成。独立的文件不必担心依赖关系。然而在nodejs上下文中,没有index.html绑定所有内容,所以你必须明确依赖关系。
如果要导出依赖于其他文件的模块,则必须告诉node去加载它们。 这儿有一种方法:
1. 在模块的开始,检查你是否在一个nodejs环境中。
2. 如果是这样,请明确声明您的依赖关系。
3. 如果没有,你可能在浏览器中,所以你不需要做任何其他事情。

仍然使用Physics.js这个例子

//=============================================================================
// setup for server-side testing
//=============================================================================
if (typeof require === 'function') // test for nodejs environment{
  var THREE = require('three');
  var MY3 = require('./MY3.js');
}

点击查看原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值