-1

我的测试通过了,但我必须 Ctrl+C 才能结束测试。有任何想法吗?

规范.js

var app = require('./app');
var request = require('supertest');
var chai = require('chai').expect;

describe('contracts', function () {

    it('should get all contracts', function () {
        request(app)
            .get('/Contracts')
            .set('Accept', 'application/json')
            .end(function (err, res) {
                console.log(JSON.parse(res.text)[0].FirstName);
                chai(res.body).to.be.an('array');
                chai(res.status).equals(200);
            });
    });

});

合同服务.js

    var mysql = require('mysql');
    const config = require('./config')

    var con = mysql.createConnection({
        host: config.HOST,
        user: config.USER,
        password: config.PASSWORD,
        database: config.DATABASE
    });

exports.get = function (req, res) {
    con.connect(function (err) {
        if (err) {
            res.send(err)
        };
        con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
            if (err) {
                res.send(err)
            };
            //console.log(result);
            res.send(result)
        });
    });
}

应用程序.js

const express = require('express');
const app = express();

app.use(express.static('client'));
var GetContracts = require('./contractsService');

app.get('/contracts', GetContracts.get);

module.exports = app;
4

1 回答 1

1

如果我在 res.send 之前放了一个 con.end(),它将优雅地退出测试。

contractService.js var mysql = require('mysql'); const config = require('./config')

var con = mysql.createConnection({
    host: config.HOST,
    user: config.USER,
    password: config.PASSWORD,
    database: config.DATABASE
});


exports.get = function (req, res) {
    con.connect(function (err) {
        if (err) {
            res.send(err)
        };
        con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
            if (err) {
                res.send(err)
            };
            //console.log(result);
            con.end(); //////////////////////right here
            res.send(result)
        });
    });
}
于 2018-06-09T05:17:39.637 回答