2012-03-29 2 views
1

Visual Studio/MSTest에서 테스트를 새로로드하기 위해 최근 WCF 서비스에 대한 트래픽이 많은 시나리오의 유효성을 검사하기 위해 새로운로드 테스트를 만들었습니다. 이 서비스에 대한 테스트 프로젝트에 추가하고 싶지만 "솔루션의 모든 테스트 실행"또는 지속적인 통합 빌드 검증 프로세스의 일부로 테스트를 실행하지 않으려 고합니다. 왜냐하면 a) 실행 시간 (분), b) 테스트중인 서비스 호출은 수천 개의 전자 메일 메시지를 생성합니다. 기본적으로 단위 테스트에 [Ignore] 특성을 추가하는 것과 동일한 작업을 수행하여로드 테스트가 명시 적으로 실행되도록 선택할 때만 실행되도록하고 싶습니다.테스트 목록을 사용하지 않고 Visual Studio 2010에서로드 테스트를 사용하지 않도록 설정하거나 무시하는 방법이 있습니까?

This MSDN Article ("How to: Disable and Enable Tests")은 테스트 목록 (.vsmdi 파일)을 사용하는 것만을 권장하지만 그와 관련하여 많은 경험이 없으며 관리하기가 번거롭고 원치 않는 것으로 나타났습니다. CI 빌드 정의를 수정하고 this blog post은 VS2012에서 테스트 목록이 더 이상 사용되지 않는다고 말합니다. 다른 아이디어?

편집 : 부하 테스트를 별도의 프로젝트에 넣고 별도의 솔루션을 유지하는 Mauricio의 대답을 받아 들였습니다. 이를 통해 개발 중에 (더 빠르게 실행되는) 단위 테스트를 실행할 수 있으며 테스트 목록을 사용하지 않고 빌드를 검증하는 동안 실행 속도가 느린로드 테스트를 포함 할 수 있습니다.

답변

0

이것은 CI 빌드 정의에서 문제가되지 않습니다. 왜?

빌드 프로세스의 일부로 단위 테스트를 실행하려면 테스트 컨테이너 (일반적으로 테스트 클래스 및 메소드를 포함하는 .dll 파일)를 가리 키도록 빌드 정의를 구성해야합니다. 로드 테스트는 이러한 방식으로 작동하지 않으며 MSTest 엔진에서 사용되는 .loadtest 파일 (xml 파일) 내에서 정의됩니다.

CI 빌드 정의를 더 이상 변경하지 않으면로드 테스트가 무시됩니다.

테스트를 빌드의 일부로 실행하려면 .loadtest 파일을 사용하도록 빌드 정의를 구성해야합니다.

테스트 목록에서 멀리 떨어져 있습니다. 당신이 말했듯이, 그들은 VS11에서 비추천되고 있습니다.

편집 : Visual Studio의 "모두 실행"테스트의 일부로 부하 테스트를 실행하지 않는 가장 간단한 방법은 부하 테스트를위한 다른 솔루션을 만드는 것입니다.

+0

주요 요구 사항은 VS에서 "솔루션에서 모든 테스트 실행"을 선택하면 LoadTests가 실행되지 않는 것입니다. 그 아이디어를 어떻게 달성 할 수 있을까요? –

+1

가장 간단한 방법은 부하 테스트를 위해 다른 솔루션을 만드는 것입니다.로드 및 웹 테스트에는 솔루션 코드에 대한 의존성이 없으므로 문제가되지 않습니다. (로드 테스트를 구성하기 위해 단위 테스트를 사용하지 않는 한 일반적으로 백 박스 테스트입니다.)/ –

+0

감사합니다. 다른 솔루션이 현재로서는 최상의 옵션 인 것처럼 보입니다 (그래도 여전히 약간의 오버 헤드가 추가됩니다). 나는 이것을 답으로 표시 할 것이다! –

0

Test Lists을 사용하고 싶지 않은 이유는 무엇입니까? 나는 그것을하는 가장 좋은 방법이라고 생각합니다. 각 테스트 유형에 대한 Create different Test Lists (단위 테스트, 부하 테스트 ...) 다음 MSTest 명령에 Test List(s) 당신이 원하는 실행

  • MSTest \testmetadata:testlists.vsmdi \testlist:UnitTests (만 UnitTests)
  • MSTest \testmetadata:testlists.vsmdi \testlist:LoadTests (만 LoadTests)
  • MSTest \testmetadata:testlists.vsmdi \testlist:UnitTests \testlist:LoadTests을 (UnitTests & LoadTests)
관련 문제