Запустите Node-сервер и запустите тестирование в CICD - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время я пытаюсь развернуть некоторые тесты в конвейерах Azure (но это должно применяться к любой платформе CICD)

У меня есть экспресс-проект, и я использую supertest с mocha для запуска тестовлокально, и все в порядке.

Теперь я хочу развернуть в производство и запустить тесты в конвейере до того, как произойдет развертывание.

Дело в том, что, поскольку эти тесты работают с http, им нужен работающий сервер.

Итак, в моем конвейере у меня есть

npm install npm start npm test

Но дело в том, что npm test не запускается при запуске сервера, а вместо этого просто зависаетна сервере работает.

Есть ли способ запустить тесты при запуске сервера? и затем остановите сервер, когда тесты будут завершены?

Или есть лучший способ добиться всего этого?

1 Ответ

0 голосов
/ 15 октября 2019

Если вы используете supertest, я бы предложил экспортировать экспресс-приложение для тестов, а не запускать его, как показано в их документах, и тогда вам нужно будет только запустить 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)
  ...
...