나는 koa2/mocha/chai/chai-http와 함께가는 TDD 워크 플로우를 얻으려고하고 있지만, 문제는 내가 테스트를 실행할 때 koa2 서버가 테스트가 끝난 후에 계속 실행된다는 것입니다. 그래서 나는 Ctrl + C (kill) 할 때마다 그것을해야합니다.모카와 함께 koa2를 TDD하는 방법은 무엇입니까?
모든 테스트를 실행 한 후 서버가 중지되는 TDD 워크 플로를 설정하는 방법을 알려줄 사람이 있습니까?
또한 테스트 파일에서 변경 사항을 확인하고 변경 사항이 감지되는 즉시 테스트를 다시하고 싶습니다 ... 아무도 도와 줄 수 있습니까? 나는 현재 (간체) 무슨 그물 -.-
에 아무것도 찾을 수 없습니다
package.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"
},
server.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();
});
});
});
감사합니다.