Questo articolo mostra come inserire three.js in un ambiente [link:https://nodejs.org/en/ node.js] così che tu possa eseguire test automatici. I test possono essere eseguiti da linea di comando o da strumenti CI automatici come [link:https://travis-ci.org/ Travis].
			Se sei a tuo agio con node e npm, installa npm
			 $ npm install three --save-dev 
			e aggiungi
			 const THREE = require('three'); 
			al tuo test.
		
Se non sei familiare con questi strumenti, ecco una guida rapida per linux (il processo di installazione sarà leggermente diverso usando Windows, ma i comandi NPM saranno uguali).
$ 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/
					
				 $ mkdir test-example; cd test-example 
				 $ npm init 
					e accetta tutti i valori suggeriti premendo Enter per ogni richiesta.
					Con queste richieste si creerà il file package.json.
				 $ npm test 
					fallirà, come ci aspettiamo. Se controlli nel file package.json la
					definizione dello script di test è:
					 "test": "echo \"Error: no test specified\" && exit 1" 
				 $ npm install mocha --save-dev 
					Si noti che è stata creata la cartella node_modules/ e le tue
					dipendenze sono state installate al suo interno. Inoltre, si noti che
					il file package.json è stato aggiornato: è stata aggiunta la proprietà
					devDependencies, aggiornata dal comando --save-dev.
				 "test": "mocha --reporter list" 
				 $ npm test 
					Adesso il test dovrebbe essere eseguito con successo, riportando "0 passing (1ms) or
					similar".
				 $ npm install three --save-dev 
					 $ npm show three versions 
							per vedere quali sono le versioni disponibili. Per dire ad npm la versione
							scelta, usa
							 $ npm install three@0.84.0 --save 
							(0.84.0 nell'esempio). --save fa sì che sia una dipendenza del
							progetto piuttosto che una devDependecy. Per maggiori informazioni
							consulta il documento
							[link:https://docs.npmjs.com/cli/v8/configuring-npm/package-json qui].
						 $ mkdir test 
				
const THREE = require('three');
const 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() {
    const vec3 = new THREE.Vector3();
    assert.equal(0, vec3.x);
  })
})
					
				
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 (8ms)
					
				Il punto 2 e 3 saranno molto dipendenti da come hai gestito il tuo codice. Nell'esempio di Physics.js fornito sopra, la parte di esportazione si trova giustamente alla fine. Assegniamo un oggetto a module.exports:
//=============================================================================
// make available in nodejs
//=============================================================================
if (typeof exports !== 'undefined') { module.exports = Physics; }
			
		Se stai già utilizzando qualcosa di smart come require.js o browserify, salta questa parte.
Tipicamente un progetto three.js verrà eseguito nel browser. Il caricamento del modulo viene quindi eseguito dal browser che esegue una serie di tag di script. I tuo singoli file non si devono preoccupare per le dipendenze. Tuttavia, in un contesto nodejs non è presente il file index.html che lega tutto insieme, quindi devi essere esplicito.
Se stai esportando un modulo che dipende da altri file, dovrai dire a node di caricarli. Di seguito un approccio:
//=============================================================================
// setup for server-side testing
//=============================================================================
if (typeof require === 'function') // test for nodejs environment {
  const THREE = require('three'); const MY3 = require('./MY3.js'); }