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

标签 node.js mongodb rest mocha.js travis-ci

我想测试我在 Travis CI 上使用 Express 框架和 MongoDb 创建的其余 api 服务。该测试在我的机器上本地运行,但在 Travis CI 上失败。我猜问题出在我的 .travis.yml 和 package.json 上。

这是我在本地运行测试的方法:

// opens mongodb database on port 27017
mongod 

// reads the db and returns documents depending on the request
node express.js 

// test CRUD operations on the app
mocha express.test.js 

我如何在 travis CI 上做同样的事情?这是我的应用程序https://github.com/mujuni88/Express-RestApi-Tutorial .

travis.yml:

language: node_js
node_js:
 - "0.10"
 - "0.9"
services: mongodb
script: 
 - "./node_modules/mocha/bin/mocha *.test.js"

package.json:

{
    "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 不会为您启动服务器。看我的repository (这有点复杂,但是嘿,它确实进行了测试)。

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

关于node.js - 在 Travis CI 上测试使用 Node.js(Express) 构建的 REST api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19719697/

相关文章:

node.js - 在 node.js 中使用 socket.io 设置服务器-服务器 SSL 通信

rest - 如何在没有 Spring 的情况下在 CXF Rest Web 服务中使用 Apache Camel

java - 使用ReSTLet框架调用特定方法

iOS REST 调用和缓存策略

node.js - Facebook 身份验证无法正常工作(部署在 OpenShift 上)

javascript - google-oauth 登录后 node.js/express/passport 挂起

node.js - 无法使用绝对文件路径导入 nodejs 模块(meteor、linux。在 Windows 上工作正常)

java - Spring Data 和 Mongo Java 驱动程序的错误处理

php - MongoDate toDateTime() 函数没有定义?

windows azure 上的 MongoDB ReplicaSet - 套接字异常错误