2013-03-03 4 views
8

단기간 내에 Windows Azure를 기반으로 프로젝트를 시작하겠습니다. 그리고 나는 Windows Azure 프로젝트를 테스트 한 경험이 무엇인지 궁금해했다. (TFS 빌드 서버와의 지속적인 통합) (에 생길 사용하는 TDD)모범 사례 (단위) Windows Azure 테스트

어떤 것들은 궁금 :

  • 가 (자신의 작성 래퍼 클래스에) 당신이 조롱 사용하십시오 수행을?
  • 스토리지 에뮬레이터를 사용합니까?
  • 서비스를 Azure에 배포하고 빌드 서버에서 클라우드로 테스트를 실행합니까? (비용은 어떨까요?)

Thnaks in advance!

답변

4

Windows Azure 외부의 응용 프로그램에 대한 단위 테스트 작성과 동일한 좋은 방법이 적용됩니다. 실제로 테스트하는 대상에 대해 외부 종속성이있는 경우 해당 종속성을 조롱하여 세분화 된 단위 테스트를 수행해야합니다.

예를 들어 Windows Azure 저장소 큐를 사용할 때 큐 자체와 상호 작용하는 데 사용할 인터페이스가 있으므로 큐 서비스를 사용하는 코드에서 인터페이스를 사용하여 서브 시스템을 조롱하고 종속성을 사용할 수 있습니다 모의 주입을위한 주사. 따라서 단위 테스트 중에 실제로 에뮬레이터를 처리 할 필요가 없습니다. 대부분의 경우 큐와 함께 작동하는 코드의 실제 구현은 매우 얇은 래퍼가 아닙니다.

필자는 개인적으로 100 % 테스트 커버리지를 촬영하지 않으므로 래퍼의 구체적인 구현을 활용하는 직접적인 단위 테스트를 수행하지 못할 수 있습니다. 많은 경우에 이러한 랩퍼를 사용하고 함께 작동하는 시스템의 여러 측면을 연습 할 통합 테스트를 시도합니다. 경우에 따라 에뮬레이터 (예 : 저장소 작업)의 통합 테스트를 실행할 수 있지만 경우에 따라서는 Windows Azure 환경에 대한 액세스 (ACS 또는 서비스 버스 사용의 경우)로 실행하면됩니다.

이상적으로 Azure에서 최소한의 테스트 서버 세트를 가동하고 솔루션을 배포하고 구내에서 수행 할 수없는 통합 테스트를 수행 할 수있는 스크립트 세트를 갖고 싶습니다. 그런 다음 그 결과를 얻고 스크립트가 모든 것을 종료하도록하십시오 (또는 필요하다면 스크립트를 실행 상태로 둘 수 있습니다). 그런 다음이 스크립트를 자주 사용하여 문제를 발견 할 수있는 통합 테스트 스위트를 실행하십시오. 그러나 테스트 환경을 항상 실행하지 않는 한 무언가를 검사 할 때마다 실행할 필요가 없습니다. Azure에서 실행되는 반영구 테스트 환경의 비용으로 괜찮 으면, 비용을 약간 줄이기 위해 삭제 및 재배포보다는 스크립트를 업데이트 배포에 배치해야합니다. 배포가 발생 함).

나는이 질문이 몇 가지 다른 의견을 가질 가능성이 높다는 점에서 매우 주관적이라고 생각합니다.

+0

몇 가지 의견을 원하기 때문에 어떤 옵션이 있는지, 그리고 '우수 사례'가 있는지 (답변마다 다를 수 있음) 볼 수 있습니다. – mrtentje

관련 문제