Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Travis CI上测试使用Node.js(Express)构建的REST api_Node.js_Mongodb_Rest_Mocha.js_Travis Ci - Fatal编程技术网

在Travis CI上测试使用Node.js(Express)构建的REST api

在Travis CI上测试使用Node.js(Express)构建的REST api,node.js,mongodb,rest,mocha.js,travis-ci,Node.js,Mongodb,Rest,Mocha.js,Travis Ci,我想在Travis CI上测试我使用Express framework和MongoDb创建的rest api服务。测试在我的机器上本地工作,但在Travis CI上失败。我猜问题出在我的.travis.yml和package.json上 以下是我在本地运行测试的方式: 我怎样才能对travis CI做同样的事情?这是我的应用程序 travis.yml: language: node_js node_js: - "0.10" - "0.9" services: mongodb script:

我想在Travis CI上测试我使用Express framework和MongoDb创建的rest api服务。测试在我的机器上本地工作,但在Travis CI上失败。我猜问题出在我的.travis.yml和package.json上

以下是我在本地运行测试的方式:

我怎样才能对travis CI做同样的事情?这是我的应用程序

travis.yml:

language: node_js
node_js:
 - "0.10"
 - "0.9"
services: mongodb
script: 
 - "./node_modules/mocha/bin/mocha *.test.js"
{
    "name":"express-restapi",
    "author":"Joe Buza",
    "description":"Express RestApi",
    "version": "0.0.1",
    "private": true,
    "keywords":["angular", "mocha", "mongodb", "express"],
    "license":"BSD",
    "dependencies": {
            "express":"3.4.4",
            "mongoskin":"0.6.0"
    },
    "devDependencies":{
        "mocha":"1.13.0",
        "expect.js":"0.2.0",
        "superagent":"0.15.7"
    },
    "scripts":{
        "start":"node express.js"
    }

}
package.json:

language: node_js
node_js:
 - "0.10"
 - "0.9"
services: mongodb
script: 
 - "./node_modules/mocha/bin/mocha *.test.js"
{
    "name":"express-restapi",
    "author":"Joe Buza",
    "description":"Express RestApi",
    "version": "0.0.1",
    "private": true,
    "keywords":["angular", "mocha", "mongodb", "express"],
    "license":"BSD",
    "dependencies": {
            "express":"3.4.4",
            "mongoskin":"0.6.0"
    },
    "devDependencies":{
        "mocha":"1.13.0",
        "expect.js":"0.2.0",
        "superagent":"0.15.7"
    },
    "scripts":{
        "start":"node express.js"
    }

}

答案很简单——如果您没有在脚本步骤中指定,Travis将不会为您启动服务器。看看我的(它有点复杂,但嘿,它做测试)


您可以将express.js的require添加到express.test.js中,并从中启动服务器。所有测试完成后,不要忘记将其拆下。

TravisCI错误是什么?我假设您在依赖项中需要Mocha,而不仅仅是DevDependence,不是吗?错误是“未捕获错误:应为{code:'ECONNREFUSED',”。有关更多信息,请查看此链接:。它可能与mongodb有关?我也有同样的问题!如果我放置“node express.js”在.travis.yml中,它只会让travis挂在那里。这种方法只在本地机器上工作。你是如何解决这个问题的?你是对的,我必须在我的express.test.js文件中要求('expressjs.js'),比如“expressjs=require('./express.js')。谢谢你,我也遇到了同样的问题!如果我放了“node express.js”在.travis.yml中,它只会使travis挂在那里。这种方法只在本地机器上有效。您是如何解决这个问题的?