2015-02-11 101 views
2

我使用supertest。我想在測試目錄中啓動所有測試。
我/tests/tests.js文件:NodeJS和supertest:使用npm命令開始測試

var request = require('supertest'); 
var app = require('express.io')(); 

//add good url with http:// and redirection 
request(app) 
    .post('/add/') 
    .expect(201) 
    .send({url: 'http://www.google.fr'}) 
    .end(function(err, res){ 
     console.log(res.body.url); 
    if (err) throw err; 
    request(app) 
     .get('/redirect/' + res.body.url.generatedid) 
     .expect(302) 
     .end(function(err, res){ 
      if (err) throw err; 
     }); 
}); 

//add good url with www. and redirection 
request(app) 
    .post('/add/') 
    .expect(201) 
    .send({url: 'www.google.com'}) 
    .end(function(err, res){ 
    if (err) throw err; 
     request(app) 
     .get('/redirect/' + res.body.url.generatedid) 
     .expect(302) 
     .end(function(err, res){ 
      if (err) throw err; 
     }); 
    }); 

我想與故宮命令來啓動:NPM運行測試。
我改變了我的package.json文件。

{ 
    "name": "UrlShortener", 
    "version": "0.0.1", 
    "description": "Licence pro Web JS project", 
    "main": "index.js", 
    "scripts": { 
    "start": "node index", 
    "release" : "npm install", 
    "tests" : "supertest tests/*.js", 
    "dev" : "DEBUG=feedback supervisor index" 
    }, 
    "dependencies": { 
    "express.io": "^1.1.13", 
    "mongoose": "^3.8.21", 
    "nunjucks": "^1.1.0", 
    "short-id": "0.1.0-1", 
    "socket.io": "^1.2.1", 
    "validator": "^3.27.0" 
    }, 
    "devDependencies": { 
    "supertest": "^0.15.0" 
}, 
    "engines": { 
    "node": "0.10.x" 
    } 
} 

NPM運行啓動工作,但是當我嘗試NPM運行測試,我有:

> [email protected] tests c:\Users\Damien\Desktop\Nouveau dossier\urlshortener 
> supertest tests/*.js 

'supertest' n'est pas reconnu en tant que commande interne 
ou externe, un programme exécutable ou un fichier de commandes. 

npm ERR! [email protected] tests: `supertest tests/*.js` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the UrlShor[email protected] tests script. 
npm ERR! This is most likely a problem with the UrlShortener package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  supertest tests/*.js 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls UrlShortener 
npm ERR! There is likely additional logging output above. 
npm ERR! System Windows_NT 6.2.9200 
npm ERR! command "d:\\NodeJS\\node.exe" "d:\\NodeJS\\node_modules\\npm\\bin\\np 
-cli.js" "run" "tests" 
npm ERR! cwd c:\Users\Damien\Desktop\Nouveau dossier\urlshortener 
npm ERR! node -v v0.10.32 
npm ERR! npm -v 1.4.28 
npm ERR! code ELIFECYCLE 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  c:\Users\Damien\Desktop\Nouveau dossier\urlshortener\npm-debug.log 
npm ERR! not ok code 0 

如何使用NPM命令來啓動我的測試(supertest)?

回答

2

supertest軟件包不包含可執行腳本。替換package.jsonscripts.tests這樣:

"scripts": { 
    "tests" : "node tests/tests.js" 
} 

你可以要求他們指定的測試文件應在tests.js運行。