Travis-CI nodejs mysql Uncaught TypeError:无法读取undefined的属性'query'

时间:2017-07-21 03:07:33

标签: mysql node.js travis-ci

我的本​​地测试通过,但Travis-CI无法通过

我的测试工具是mocha和supertest

//。travis.yml

language: node_js
node_js :
- "6"
services:
- mysql
before_install:
- mysql -e 'CREATE DATABASE UserManage;'
- mysql -e 'use UserManage; create table userInfo(
                        id int auto_increment primary key not null,
                        username char(20),
                        name char(20),
                        age int,
                        sex char(10),
                        phone char(20),
                        email char(20),
                        remark char(20));'

// Travis-CI错误

8) unit test loading express "after each" hook:
 Uncaught TypeError: Cannot read property 'query' of undefined
  at test/modifyUserSpec.js:22:13
  at Handshake.onConnect (node_modules/mysql/lib/Pool.js:58:9)
  at Handshake.Sequence.end (node_modules/mysql/lib/protocol/sequences/Sequence.js:86:24)
  at Handshake.ErrorPacket (node_modules/mysql/lib/protocol/sequences/Handshake.js:105:8)
  at Protocol._parsePacket (node_modules/mysql/lib/protocol/Protocol.js:280:23)
  at Parser.write (node_modules/mysql/lib/protocol/Parser.js:75:12)
  at Protocol.write (node_modules/mysql/lib/protocol/Protocol.js:39:16)
  at Socket.<anonymous> (node_modules/mysql/lib/Connection.js:103:28)
  at readableAddChunk (_stream_readable.js:176:18)
  at Socket.Readable.push (_stream_readable.js:134:10)
  at TCP.onread (net.js:547:20)
npm ERR! Test failed.  See above for more details.
The command "npm test" exited with 1.
Done. Your build exited with 1.

//的package.json

"dependencies": {
"body-parser": "^1.17.2",
"express": "^4.15.3",
"mysql": "^2.13.0",
"node-mysql-wrapper": "^2.9.3",
"nodemon": "^1.11.0",
"webpack": "^3.3.0"
  },
 "devDependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"bluebird": "^3.5.0",
"mocha": "^3.4.2",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-redux": "^5.0.5",
"really-need": "^1.9.2",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0",
"superagent": "^3.5.2",
"supertest": "^3.0.0"
  }

//一个测试是

require('../registerBabel');
const server = require('../server');
const request = require('supertest');
const mysql = require('mysql');
const $conf = require('../routes/conf');
const $sql = require('../routes/userSqlMapping');
const pool = mysql.createPool($conf.mysql);

describe('unit test loading express', ()=> {
let id;
const username = 'huanglizhen';
beforeEach((done)=> {
    pool.getConnection((err, connection)=> {
        connection.query($sql.insert, ['huanglizhen', 'hhh', 21, 'gril', '15091671302', '929659475@qq.com', 'dh'], (err, result)=> {
            id = result.insertId;
            connection.release();
            done();
        });
    });
});
afterEach((done)=> {
    pool.getConnection((err, connection)=> {
        connection.query($sql.delete, id, (err, result)=> {
            connection.release();
            done();
        });
    });
});
it('response to /getOneUser', (done)=> {
    request(server.listen())
        .get(`/getOneUser/${username}`)
        .expect(200, done);
})
});

我的本​​地mysql数据库也是UserManage,而表是userInfo,我创建它使用before_install相同的sql语句

0 个答案:

没有答案