테스트를 위해 nodejs 애플리케이션을 자동으로 시작하는 방법

그로 핏

나는 프론트 엔드가없는 nodejs 편안한 스타일의 서비스를 가지고 있으며 데이터를 받아들이고 뭔가를 수행합니다.

내가 원하는 대부분의 메소드 레벨 항목을 단위 테스트했지만 이제는 기본적으로 모든 것이 함께 작동 함을 증명하기 위해 일부 자동화 테스트를 수행하고 싶습니다. ASP.MVC 및 IIS를 사용할 때 서버가 항상 켜져 있기 때문에 쉽게 사용할 수 있으므로 시나리오를 설정 (DB에 더미 거프 삽입) 한 다음 HttpRequest를 만들고 서버로 보내고 예상 한대로 돌아 간다고 주장합니다. .

그러나 nodejs에는 응용 프로그램이 명령 줄이나 다른 메커니즘을 통해 실행되어야하므로 몇 가지 문제가 있습니다. 따라서 수신을 시작할 app.js가 있다는 점을 감안할 때 자동으로 시작하는 방법이 있습니까? 내 테스트를 실행 한 다음 테스트가 완료되면 닫으시겠습니까?

현재 테스트를 위해 Mocha와 함께 Yadda를 사용하고 있으므로 BDD 스타일 방식으로 작성할 수 있지만 웹 앱의 시작이 내가 사용중인 프레임 워크에 영향을받지 않기를 바랍니다.

신음 소리

웹 서버를 시작하고 중지하는 몇 가지 방법을 노출하십시오. app.js 파일은 다음과 같을 수 있습니다.

var app = express()
var server = null
var port = 3000

// configure your app here...

exports.start = function(cb) {
  server = http.createServer(app).listen(port, function () {
    console.log('Express server listening on port ' + port)

    cb && cb()
  })
}

exports.close = function(cb) {
  if (server) server.close(cb)
}

// when app.js is launched directly
if (module.id === require.main.id) {
  exports.start()
}

그런 다음 테스트에서 다음과 같이 할 수 있습니다 (모카 기반 예제).

var app = require('../app')

before(function(done) {
  app.start(done)
})

after(function(done) {
  app.close(done)
})

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

swrevealviewcontroller로 애플리케이션을 시작하기 위해 메뉴를 여는 방법은 무엇입니까?

분류에서Dev

메인 애플리케이션을 테스트하기 위해 Cucumber를 사용하는 외부 애플리케이션을 자동으로 실행합니다.

분류에서Dev

FastAPI 애플리케이션을위한 SQLAlchemy 테스트 픽스처를 작성하는 방법

분류에서Dev

reactjs로 nodejs 익스프레스 애플리케이션을 생성하는 방법

분류에서Dev

다중 REST 애플리케이션을 위해 esb를 통합하는 방법

분류에서Dev

Spring-JMS, 애플리케이션이 가동 된 후 JMS를 시작하고 중단 될 경우 계속해서 재 연결을 시도하는 방법

분류에서Dev

애플리케이션 콜백을 호출하지 않고 단위 테스트를 실행하는 방법

분류에서Dev

컨트롤러 테스트를 위해 애플리케이션 구성을 조작하는 방법은 무엇입니까?

분류에서Dev

최하위 속성으로 애플리케이션을 시작하는 방법은 무엇입니까?

분류에서Dev

애플리케이션 컨트롤러에서 메서드를 테스트하는 방법은 무엇입니까? 내 접근 방식으로 인해 다른 테스트가 무작위로 충돌합니다.

분류에서Dev

Laravel 애플리케이션에서 Docker 컨테이너 시작으로 웹 소켓을 실행하는 방법

분류에서Dev

원격으로 그래픽 애플리케이션을 실행하기 위해 SSH를 통해 X를 전달하는 방법은 무엇입니까?

분류에서Dev

jboss EAP 6.2 애플리케이션을위한 로거 팩토리를 구현하는 방법

분류에서Dev

Docker 컨테이너를 다시 시작하기 위해 ASP.NET Core 애플리케이션을 올바르게 종료하는 방법

분류에서Dev

자바 스크립트 / NodeJS 애플리케이션을 프로토 타이핑 할 때 단위 테스트를해야하고하지 말아야 할 것은 무엇입니까?

분류에서Dev

Bitbucket 파이프 라인으로 웹 애플리케이션을 배포하기 위해 grunt 빌드를 실행하는 방법은 무엇입니까?

분류에서Dev

RCP 애플리케이션에 대한 단위 테스트를 조각으로해야하는 이유

분류에서Dev

nodeJS 애플리케이션을 테스트 할 때 Capybara.app을 무엇으로 설정해야합니까?

분류에서Dev

원격 서버에 배포 된 테스트를 위해 샘플 웹 애플리케이션을 사용하는 방법은 무엇입니까?

분류에서Dev

ReactJS로 노트 애플리케이션에 하위 목록을 추가하는 방법은 무엇입니까?

분류에서Dev

부팅시 또는 서비스로 애플리케이션을 시작하는 방법

분류에서Dev

KIVY 애플리케이션을 다시 실행하지 않고 sqlite3에서 데이터를 가져 오기 위해 KIVY를 자동 업데이트하거나 다시로드하는 방법

분류에서Dev

nodejs 요청을 다른 nodejs 애플리케이션으로 라우팅하는 방법은 무엇입니까?

분류에서Dev

시트에서 (VBA 매크로를 통해) laravel 애플리케이션으로 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

시트에서 (VBA 매크로를 통해) laravel 애플리케이션으로 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

Cypress 및 Auth0으로 단일 페이지 애플리케이션을 테스트하는 방법

분류에서Dev

플레이! Scala : 테스트 할 때 애플리케이션 시작시로드 된 액터 모듈을 비활성화하는 방법은 무엇입니까?

분류에서Dev

Android 애플리케이션 사용자의 위치를 추적하는 방법

분류에서Dev

노드 js 익스프레스 애플리케이션을 단위 테스트하는 방법

Related 관련 기사

  1. 1

    swrevealviewcontroller로 애플리케이션을 시작하기 위해 메뉴를 여는 방법은 무엇입니까?

  2. 2

    메인 애플리케이션을 테스트하기 위해 Cucumber를 사용하는 외부 애플리케이션을 자동으로 실행합니다.

  3. 3

    FastAPI 애플리케이션을위한 SQLAlchemy 테스트 픽스처를 작성하는 방법

  4. 4

    reactjs로 nodejs 익스프레스 애플리케이션을 생성하는 방법

  5. 5

    다중 REST 애플리케이션을 위해 esb를 통합하는 방법

  6. 6

    Spring-JMS, 애플리케이션이 가동 된 후 JMS를 시작하고 중단 될 경우 계속해서 재 연결을 시도하는 방법

  7. 7

    애플리케이션 콜백을 호출하지 않고 단위 테스트를 실행하는 방법

  8. 8

    컨트롤러 테스트를 위해 애플리케이션 구성을 조작하는 방법은 무엇입니까?

  9. 9

    최하위 속성으로 애플리케이션을 시작하는 방법은 무엇입니까?

  10. 10

    애플리케이션 컨트롤러에서 메서드를 테스트하는 방법은 무엇입니까? 내 접근 방식으로 인해 다른 테스트가 무작위로 충돌합니다.

  11. 11

    Laravel 애플리케이션에서 Docker 컨테이너 시작으로 웹 소켓을 실행하는 방법

  12. 12

    원격으로 그래픽 애플리케이션을 실행하기 위해 SSH를 통해 X를 전달하는 방법은 무엇입니까?

  13. 13

    jboss EAP 6.2 애플리케이션을위한 로거 팩토리를 구현하는 방법

  14. 14

    Docker 컨테이너를 다시 시작하기 위해 ASP.NET Core 애플리케이션을 올바르게 종료하는 방법

  15. 15

    자바 스크립트 / NodeJS 애플리케이션을 프로토 타이핑 할 때 단위 테스트를해야하고하지 말아야 할 것은 무엇입니까?

  16. 16

    Bitbucket 파이프 라인으로 웹 애플리케이션을 배포하기 위해 grunt 빌드를 실행하는 방법은 무엇입니까?

  17. 17

    RCP 애플리케이션에 대한 단위 테스트를 조각으로해야하는 이유

  18. 18

    nodeJS 애플리케이션을 테스트 할 때 Capybara.app을 무엇으로 설정해야합니까?

  19. 19

    원격 서버에 배포 된 테스트를 위해 샘플 웹 애플리케이션을 사용하는 방법은 무엇입니까?

  20. 20

    ReactJS로 노트 애플리케이션에 하위 목록을 추가하는 방법은 무엇입니까?

  21. 21

    부팅시 또는 서비스로 애플리케이션을 시작하는 방법

  22. 22

    KIVY 애플리케이션을 다시 실행하지 않고 sqlite3에서 데이터를 가져 오기 위해 KIVY를 자동 업데이트하거나 다시로드하는 방법

  23. 23

    nodejs 요청을 다른 nodejs 애플리케이션으로 라우팅하는 방법은 무엇입니까?

  24. 24

    시트에서 (VBA 매크로를 통해) laravel 애플리케이션으로 파일을 업로드하는 방법은 무엇입니까?

  25. 25

    시트에서 (VBA 매크로를 통해) laravel 애플리케이션으로 파일을 업로드하는 방법은 무엇입니까?

  26. 26

    Cypress 및 Auth0으로 단일 페이지 애플리케이션을 테스트하는 방법

  27. 27

    플레이! Scala : 테스트 할 때 애플리케이션 시작시로드 된 액터 모듈을 비활성화하는 방법은 무엇입니까?

  28. 28

    Android 애플리케이션 사용자의 위치를 추적하는 방법

  29. 29

    노드 js 익스프레스 애플리케이션을 단위 테스트하는 방법

뜨겁다태그

보관