我目前正在尝试将一些测试部署到Azure管道(但这应该适用于任何CICD框架)
我有一个express项目,我正在使用supertest和mocha在本地运行测试,一切都很好。
现在,我希望部署到生产环境中,并且希望在部署发生之前在管道中运行测试。
问题是,由于这些测试是针对http运行的,因此它们需要一个运行的服务器。
所以,在我的管道中
npm install npm start npm test
但问题是,当服务器启动时,npm test并没有运行,而是在服务器运行时挂起。
有没有办法在服务器启动时启动测试?然后在测试结束时停止服务器?
或者,有没有更好的方法来实现这一切?
发布于 2019-10-15 21:10:36
如果你正在使用supertest,我建议你为测试导出express应用程序,而不是像他们的文档中显示的那样运行它,然后你只需要运行npm install和npm test。
例如:
app.js
const express = require('express');
const app = express();
// Add middlewares
module.exports = app;test.spec.js
const app = require('../app.js');
request(app)
.get('/user')
.set('Accept', 'application/json')
.expect('Content-Type', /json/)
.expect(200)
...https://stackoverflow.com/questions/58394620
复制相似问题