2014-02-20 3 views
2

Github의 여러 node.js 프로젝트에서 간단한 테스트를 통해 테스트 파일을 ./spec 디렉토리에 두는 것이 주목됩니다 (정확한 이름은 다를 수 있음 : ./tests, ./specs , 등). 이것을 "고전적인"프로젝트 조직이라고합시다. 한편 Node.JS : 테스트 코드 대 프로덕션 코드 구성

도 (적어도 이론적으로)은 "지역화"조직이 각 테스트 파일은 예를 들어,이 테스트 생산 파일 (같은 디렉토리에, 우리는 login_controller.js이뿐만 아니라 login_controller.spec.js./controllers에서). 이 명확하게 주관적인 주제 I에 신학 전투를 피하기 위해

구체적인 질문을 할 것입니다 :

  • 사람이 지역화 조직을 사용하여 주요 모듈/응용 프로그램을 본 적이 있습니까?
  • 현지화 조직에 대한 단점/제한 사항이 있습니까? "힘들다"는 말은 "글쎄, Heroku는 배포 번들 (a.k.a slug)에 spec/디렉토리를 포함하지 않으므로 고전적인 조직은 서버에서 차지하는 공간이 작습니다"라고 말합니다.
  • "클래식"체계를 어떻게 든 부과하는 테스트 프레임 워크 (Mocha, jasmine-node 및 co.)가 있습니까?

답변

1
  1. 아니요,하지만 이는 조직의 기본 설정에 달려 있습니다. 필자는 개인적으로 테스트 디렉토리를 선호합니다.
  2. Nope. Heroku는받은 슬러그에있는 모든 것을 포함합니다. 제외되는 유일한 것들은 .gitignore 파일에서 git에서 제외 된 것들입니다.
  3. 100 % 확신 할 수는 없지만 일반적으로 테스트 프레임 워크는 코드에 구조를 적용하지 않습니다. 그들은 원하는 구조를 사용하여 테스트를 작성할 수있는 툴을 제공하기 만하면됩니다.
2

여기에서 일관성은 당신이 가기로 결정한 방향보다 더 중요합니다. 상대적으로 사소한 쟁점이 있습니다. 소스 파일 옆에 테스트 파일을 보았습니다.

  1. 잠재적 인 코드 탐색 문제. 사고로 잘못된 파일을 열 때도 있습니다. . 으로 테스트 파일을 열면 소스 파일이 열립니다. 파일이 나란히 있고 유일한 차이는 파일의 .spec 인 경우 더 자주 발생합니다.

  2. 단위 테스트 러너의 잠재적 문제. 대부분의 단위 테스트 주자는 기본적으로 테스트 폴더를 선호하는 으로 보입니다. 을 전체 프로젝트를 조사하도록 구성 할 수 있지만 테스트 주자에 따라 달라질 수 있습니다.

  3. 잠재적으로 느린 단위 테스트 자동화. 테스트 파일은 전체 프로젝트에 걸쳐 이 혼합되어 있기 때문에 테스트 러너는 전용 디렉토리가 아닌 테스트 파일 용으로 전체 프로젝트 을 스캔해야합니다. 코드베이스가 크기 때문에 테스트를 완료하는 데 시간이 오래 걸릴 수도 있습니다. 차이는 속도 차이가있을 확률은 꽤 입니다.

제가 말했듯이, 이들은 사소한 문제이며 여러분은 분명히 그 문제를 해결할 수 있습니다. 테스트 파일을 소스 파일 옆에 두는 것의 이점으로 볼 수있는 잠재적 인 단점을 고려해야합니다.