Я пытаюсь запустить рабочий процесс TDD с помощью koa2/mocha/chai/chai-http, но моя проблема в том, что когда я запускаю тесты, сервер koa2 продолжает работать после завершения тестов. Так что мне приходится каждый раз нажимать Ctrl+C (убивать).
Может ли кто-нибудь сказать мне, как настроить рабочий процесс TDD, при котором сервер останавливается после выполнения всех тестов?
Кроме того, я хотел бы посмотреть тестовые файлы на наличие изменений и повторно запустить тесты, как только будут обнаружены изменения... кто-нибудь может помочь с этим? ничего не могу найти в сети -.-
Что у меня сейчас есть (упрощенно):
пакет.json:
"scripts": {
"watch-server": "nodemon --watch 'src/**/*' -e ts,tsx --exec 'ts-node' ./src/server.ts",
"test": "./node_modules/mocha/bin/mocha --compilers ts:ts-node/register test/**/*.ts"
},
сервер.тс:
app.use(routes_v1.routes());
export const server = app.listen(3000, () => {
console.log('Server running on port 3000');
});
тест:
process.env.NODE_ENV = 'test';
import * as chai from 'chai';
const chaiHttp = require('chai-http');
const should = chai.should();
chai.use(chaiHttp);
import { server } from '../../../src/server';
describe('routes : login / register', () => {
describe('POST /sign_in', () => {
it('should return unauthorized for invalid user', (done) => {
chai.request(server)
.post('/sign_in')
.send({email: "[email protected]", password: "somePassword"})
.end((err, res) => {
res.status.should.eql(401);
should.exist(err);
done();
});
});
it('should return authorized for valid user', (done) => {
chai.request(server)
.post('/sign_in')
.send({email: '[email protected]', password: "authorizedPassword"})
.end((err, res) => {
res.status.should.eql(200);
should.exist(res.body.token);
done();
});
});
});
Спасибо.
src/server
? Пытаюсь заставить это работать с моим приложением koa2, но я думаю, что попал в состояние гонки. - person Dylan Pierce   schedule 10.04.2020