Node.js 단위 테스팅 [닫기]


164

현재 node.js (서버 측 js) 단위 테스트 프레임 워크가 있습니까? 제공된 Assert 모듈보다 조금 더 깊은 것을 찾고 있습니다.

답변:


66

나는 node-unit을 사용하여 정말로 행복했습니다.

원래 Expresso 를 사용하고 있었지만 테스트를 병렬로 실행한다는 사실은 몇 가지 문제를 일으켰습니다. (예를 들어 데이터베이스 픽스처 사용은이 상황에서 잘 작동하지 않습니다).


25
Expresso는 테스트를 병렬로 실행하지 않습니다. --serial 인수를 입력하면 모든 순서대로 실행됩니다.
einaros

3
방금 다운로드하여 사용한 nodeunit ...은 정확히 무엇을하는지, 처음에는 ftw로 작동했습니다!
Michael Dausmann

1
노드 유닛은 모든 테스트가 .done()imho 를 호출해야한다는 점에서 약간 이상 합니다.
코스

2
지금 새 프로젝트를 시작했다면 아마도 Mocha를 테스트 프레임 워크로 사용했을 것입니다
evilcelery

1
노드 유닛은 .done()비동기 테스트를 수용 해야 합니다. 나는 때때로 조금 다루기가 어려울 수 있지만, 이런 식으로 그렇게하는 데는 상당한 이유가 있다고 생각합니다.
L0j1k

48

또한 노드에 대한 적절한 테스트 프레임 워크를 찾고 Mocha를 찾았습니다 . Expresso 의 공식 후계자 이며 매우 성숙해 보입니다.

다른 어설 션 라이브러리를 플러그인 할 수 있으며 코드 적용 및 기타 사항에 대한 리포터를 제공합니다 (자신의 플러그인 가능). sync 또는 async를 실행할 수 있으며 간결한 API가 있습니다.

나는 그것을 시도하고 다시보고 할 것이다 ...

편집하다:

다른 프로젝트에 전념 한 엄청난 시간이 지난 후 마침내 Javascript 프로젝트로 돌아와서 모카와 함께 놀 시간을 가졌습니다. 나는 그것을 사용하는 것이 좋습니다. 테스트는 매우 잘 읽었으며, gulp와의 통합은 훌륭하고 테스트는 매우 빠르게 실행됩니다. 나는 자동 독립형뿐만 아니라 브라우저 내 (browserify) 테스트 실행 및 해당 코드 적용 범위 보고서를 약 반나절 만에 설정할 수있었습니다 (대부분 gulp에서 browserify를 사용하는 방법을 이해하는 데 소요되는 시간). 나에게 모카는 테스트 프레임 워크에 아주 좋은 선택 인 것 같습니다.

최신 정보:

나는 여전히 모카에 대해 매우 확신합니다. chai와 통합하면 다양한 어설 션 스타일을 플러그인 할 수 있습니다. 이 github 프로젝트 에서 작업 설정을 체크 아웃 할 수 있습니다 . 코드 커버리지 보고서, 자동 감시자 및 IntelliJ와의 우수한 통합 기능을 통합하여 현재 카르마와 함께 사용하고 있습니다.


github 프로젝트 링크가 끊어졌습니다. 갱신 해 주시겠습니까?
karlisup


15

나는 개인적으로 단언 모듈을 사용했지만 더 많은 것을 원한다는 것을 알았습니다. 나는 많은 노드 모듈을 살펴 보았고 인기있는 단위 테스트 프레임 워크는 노드 단위 이며 (Expresso와 같은 사람이 만들었습니다 (업데이트 된 이름입니까?)

맹세 도 유망 해 보인다.


15
나는 그 말장난에 대해 당신을 찬성했습니다.
ThomasReggi


5

vows 는 node.js에 대한 견고한 단위 테스트 라이브러리이지만 구문은 지루합니다.

API를 체인 가능하게 만드는 vows-fluent 라는 얇은 추상화를 작성했습니다 .

그리고 또 다른 추상화 인 [vows-is]를 작성했는데, 이는 vows-fluent를 기반으로하고 BDD 스타일 구문을 노출시킵니다.

예를 들면

var is = require("vows-is");

is.suite("testing is fun").batch()

    .context("is testing fun?")
        .topic.is("yes")
        .vow.it.should.equal("yes")

.suite().run({
    reporter: is.reporter
});

더 많은 예


6
것과 아멘 서원 구문 IMO 끔찍한 인
멋있지 Felker

appeasy 래퍼로 서약을 가지고 놀았습니다. json api를 테스트하는 좋은 아이디어처럼 보였지만 빠르게 부족했습니다. 또한 이와 같은 체인 호출을 향한 ​​API는 사용하기 어렵고 디버깅하기가 어렵다는 것을 알았습니다. 예제에서는 좋지만 실제 사용 환경에서는 잘 작동하지 않습니다.
drekka 2016 년

@drekka 서약과 서약은 끔찍합니다. mocha 사용
Raynos

지금 시도했지만 비슷한 문제가 발생하는 것으로 보입니다.
drekka

당신은 그때 그것을 잘못 사용해야합니다. gist.github.com/2896455를 읽어 보십시오 . @drekka
Raynos



0

원래 node.js 용으로 만들어진 deadunit 은 node.js 및 브라우저 용 자바 스크립트 단위 테스트 라이브러리입니다. 고유 한 속성 중 일부 :

  • 쉬운 학습 곡선
  • 명령 줄 (컬러 또는 일반 텍스트) 또는 HTML로 테스트 결과를 출력 할 수 있습니다
  • 어설 션이있는 실제 코드 줄을 인쇄하므로 테스트 주석을 작성하는 데 많은 시간을 소비하지 않아도 출력이 의미가 있습니다.
  • count예상되는 예외를 처리하고 비동기식 어설 션을 쉽게 처리 할 수 있는 간단한 어설 션이 있습니다.
  • 예외 첨부 된 데이터를 인쇄합니다.
  • 코드가 걸려 있는지 알려줍니다 (원하는 것은 아니지만 일반적으로 눈에 띄지 않습니다)
  • 이벤트 중심 API를 통해 네트워크 또는 원하는 방식으로 테스트 결과를 스트리밍 할 수 있습니다.
  • 노드 파이버를 사용한 테스트 지원

0

방금 karma 및 Jasmine : narma 와 nodejs를 테스트하는 데 사용하는 프로젝트를 업로드했습니다 . 노드 모듈은 노드 웹킷 브라우저에로드되므로 노드 모듈을 실행하고 동일한 힙에서 jquery와 같은 라이브러리를 사용할 수 있습니다.


0

test-studio 는 단위 테스트를위한 강력한 웹 기반 프런트 엔드를 제공하는 npm 패키지입니다. 개별 또는 그룹의 테스트를 실행하고 노드 검사기를 개별 테스트에 스테핑하는 것과 같은 것을 지원합니다. 현재 모카를 지원하며 앞으로 더 많은 프레임 워크가 지원 될 것입니다.

자세한 내용은 여기를 참조 하십시오 .

면책 조항 : 나는 저자입니다.


1
이게 당신이 쓴 것 같아요? 그렇다면 답변에 해당 사실을 공개해야합니다.
strugee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.