因为最近使用koa2做项目测试开发,所以想整合下特拉维斯ci,网上资料也比较少,于是自己就整了个,做个记录。分享出来供大家参考学习、下面来看看详细的介绍吧。
先来看下travis.yml的配置
语言:node_js node_js: ——“6” before_script: ——/node_modules/in/knex迁移:最新——knexfile='。/app/knexfile.js ' 脚本: ——npm运行测试
因为是接口测试,所以首先需要做表创建等操作。
<强>测试的命令:强>
NODE_ENV=生产NODE_CONFIG_DIR=薄?app/config/?node_modules/in/摩卡——需要“babel-polyfill”——编译器js: babel-register。/app/测试/* */* . js
主要是测试这里,使用了supertest,大概看下是如何调用的。
const请求=要求(“supertest”); const=应该要求(“应该”); const指数=要求(“. ./. ./指数”); 让应用程序=请求(index.listen ()); 描述(/api/人,函数(){ 让personId; (' POST/api/人-创建个人成功和应对200年,函数(){ app.post (/api/人) .send ({ “firstName”:“珍妮弗”, “姓”:“劳伦斯”, “年龄”:24 }) .expect (200) .expect(函数(res) { (res.body。id祝辞0).should.be.true; }) 指标(最终函数(呃,res) { 如果(err) { 返回(err); } 让resJson=JSON.parse (res.text); personId=resJson.id; (完成); }) }); 它(的/api/者——获取项目的,函数(){ app.get (/api/人) .expect (200) .expect(函数(res) { (res.body。长度比;0).should.be.true; }) 指标(最终函数(呃,res) { 如果(err) { 返回(err); } (完成); }) }); (/api/人/:id -获取一个人的,函数(){ app.get ('/api/人/$ {personId} ') .expect (200) .expect(函数(res) { (res.body。id==.should.be.true personId); }) 指标(最终函数(呃,res) { 如果(err) { 返回(err); } (完成); }) }); (“删除/api/人/:id——删除一个人的,函数(){ app.delete ('/api/人/$ {personId} ') .expect (200) 指标(最终函数(呃,res) { 如果(err) { 返回(err); } (完成); }) }); (/api/人/:id -获取一个人应该404年,函数(){ app.get ('/api/人/$ {personId} ') .expect (404) 指标(最终函数(呃,res) { 如果(err) { 返回(err); } (完成); }) }); });
这里主要注意的是
const指数=要求(“. ./. ./指数”);
需要将亚实例暴漏出来,不然在做特拉维斯ci的集成后,启动了项目,测试的时候依然找不到具体访问地址。
<强>来看下我的index.js 强>
从“进口Knex Knex '; 进口{ 模型 从“异议”}; 从“进口knexConfig。/knexfile '; 从“配置”进口配置; 从“高雅”进口高雅; 从“进口koaLogger koa-logger '; 从“进口bodyParser koa-bodyparser '; 从“koa-ejs”进口呈现; 进口公司从“有限公司”; 从“进口koaStatic koa2-static” 从“进口路由器。/路由器”; const path=要求(“路径”);//初始knex const knex=knex (knexConfig.development); Model.knex (knex);//初始应用程序 const应用=new高雅();//初始渲染 呈现(app, { 根:路径。加入(__dirname +/视图), 布局:“模板”, viewExt:“ejs”, 缓存:没错, 调试:真 }); app.context。渲染=co.wrap (app.context.render);//初始静态 app.use (koaLogger ()) .use (bodyParser ()) .use (router.routes ()) .use (koaStatic ({ 路径:/网络, 根:__dirname +“/. ./静态” })); 模块。出口=应用;
模块。出口=应用;
暴漏出来,再supertest中才可以独立启动服务器测试。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。