node.js - NodeJS 和 super 测试 : start tests with npm command

标签 node.js testing command npm supertest

我使用supertest 。我想启动测试目录中的所有测试。
我的/tests/tests.js 文件:

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 命令启动:npm run test。
我更改了 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 run start 有效,但是当我尝试 npm run 测试时,我有:

> <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="65301709360d0a1711000b001725554b554b54" rel="noreferrer noopener nofollow">[email protected]</a> 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! <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d98cabb58ab1b6abadbcb7bcab99e9f7e9f7e8" rel="noreferrer noopener nofollow">[email protected]</a> tests: `supertest tests/*.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7b2e0917281314090f1e151e093b4b554b554a" rel="noreferrer noopener nofollow">[email protected]</a> 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 命令启动我的测试( super 测试)?

最佳答案

supertest 包不包含可执行脚本。将 package.json 中的 scripts.tests 替换为:

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

您可以通过要求来指定应在 tests.js 中运行哪些测试文件。

关于node.js - NodeJS 和 super 测试 : start tests with npm command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28465762/

相关文章:

python - 如何执行程序或调用系统命令?

mysql - SQL 从表中选择

mysql - 如何在 RDS 上正确使用 Knex/Bookshelf 和 MySQL

javascript - 何时使用 Meteor.methods 和使用 stub

c# - 如何为测试目的模拟网络故障(在 C# 中)?

php - 交响乐 2 : Disable Doctrine event listener in ContainerAwareCommand

javascript - Nodejs http.request 如何将 json 参数发送到 java 接口(interface)

node.js - NodeJS jwtStrategy 需要一个函数来从请求错误中检索 jwt

testing - 使用 master 运行 puppet apply 以获取依赖项

reactjs - 不变违规 : Element type is invalid: expected a string (for built-in components) when testing with enzyme mount