2012-11-24 2 views
5

테스트와 관련하여 필자는이를 뒷받침했습니다. 나는 이제 거대한 팬이고 종종 TDD와 같은 것을합니다. VS 2010에서는 설계 및 회귀 분석을 위해 방금 MSTEST를 사용했습니다. 이것은 대단합니다 - 모든 프로젝트는 오픈 소스이며 어쨌든 내 작업에 연결됩니다 (물리학 연구 @ 대학). 나는 그때 내가 찾지 않은 모든 종류의 엣지 케이스를 많이 찾는데 도움이되는 Pex에 들어갔다. 일반적으로 이것이 내가 코딩하는 방법에 혁명을 일으켰습니다. 그리고 이것이 나를 두더지에게 소개시켜주었습니다. 또한 매우 시원한 (그러나 나는 아직도 배우고있다).VS 2012에서 Pex와 Moles에서 멀어지고 있습니까?

불행히도 저는 Pro 버전의 VS (내 대학이 사이트 라이센스로 사용하는 것임)에만 액세스 할 수 있습니다. 그 결과 Moles는 더 이상 작동하지 않으며 업그레이드도 Fakes도하지 않습니다. 그리고 나는 Pex의 다음 버전이 Fake에 의지 할 것이며 그것이 Ultimate-only 옵션이 될 것이라고 생각한다.

그래서 지금은 비슷한 기능을 가진 오픈 소스 도구를 찾고 있습니다. 문서가 어딘가에 있거나 더 성숙한 OSS 프로젝트를 비교하는 자료가 있습니까? 나는 약간의 손실 (즉, 너무 많은 옵션)에서 자신을 찾는다. 이 조롱 능력을 사랑하는 동안, 그것은 도구이며, 여가 시간을 보내고 싶지 않습니다. (이것이 대부분의 .NET 프로그래밍이 이루어지는 곳입니다.)

저는 실제 돈을 쓰지 않고도 Pex를 대체 할 수 없다고 생각합니다.

그리고 그 동안 MSTEST보다 우수한 다른 테스트 프레임 워크가 있는지 확인해야 할 것 같습니다. MSTEST는 꽤 좋지만 조금 제한적이라고 느끼기 시작했습니다 (VS2012에 새로운 기능이 추가되지는 않았습니다).

사전에 도움을 주셔서 감사 드리며 실제로는 일반적으로 좀 더 구체적인 질문을하려고합니다.하지만 여기서는 바다에서 조금 씩입니다.

+0

nunit 및 xunit은 MSTests의 훌륭한 대안입니다. xunit은 이제 비동기 테스트를 지원합니다. – roundcrisis

답변

4

.NET에서 테스트하기 위해 PEX 대신 사용할 수있는 대안이 없습니다.

가짜 프레임 워크에는 많은 대안이 있습니다 (예 : Moq 또는 Rhino Mocks). 더 자세한 목록은 here을 참조하십시오. 개인적으로 나는 유창한 API를 좋아하기 때문에 Moq을 사용하며 classical and mockist 테스트 스타일을 모두 지원합니다.

가짜 프레임 워크에는 단위 테스트에 적합하지 않은 유형 (예 : 밀폐 유형 또는 정적 메소드)에 대한 심을 생성하는 기능이 포함됩니다. TypeMock Isolator이이 대안의 유일한 대안 일 수는 있지만 무료는 아닙니다. 자신 만의 테스트 용 랩퍼를 작성하거나 어떤 형태의 duck typing을 사용할 수 없으면 실패합니다.

Visual Studio 2012에는 테스트 러너 용 아키텍처가 플러그인되어 있으므로 Peter Provst는 플러그인 목록 here을 유지 관리합니다. VS 2012에서 MSTest 대신 vstestconsole을 사용한다고 생각합니다. 2012 년에 단위 테스트를 2010 년보다 훨씬 빠르게 실행하는 것으로 느껴집니다. NUnit은 MSTest보다 매개 변수화 된 테스트를 더 잘 지원합니다.

+0

예. shim을 할 수있는 능력을 놓치고 있습니다. – Gordon

+0

Fakes는 Moles의 출시 버전입니다. Pex는 여전히 미래를 가지고 있습니다. Moles가 먼저 시장에 나와야하고 모든 주름을 제거해야한다는 것은 의미가 있습니다. Pex는 다음 주요 릴리스에서 출현 할 수 있습니다. 나는 이것에 관해 아무 것도 듣지 않았다. 이것은 추측 일뿐입니다. –

5
  1. 당신은 당신이 일반적으로 VS 2012 VS 프로젝트 스키마 내부에서 작업하는 경우에도, VS 2010에서 솔루션 (들)을 열어 테스트를 생성하는 PEX를 계속 사용할 수 있습니다

    는 VS 2010 VS 2012 사이의 매우 호환 2010 추가 기능에서 명령 줄 PEX를 실행하는 것도 고려할 수 있습니다. 이 https://stackoverflow.com/a/6809669

  2. PEX는 두더지 또는 페이크, 전자에 국한되지 않은 다른 조롱 프레임 워크와 함께 작동합니다 참조하십시오.g는 Integrate Pex with MoQ

  3. 페이크 우리 팀이 NSubstitute 선택 조롱 프레임 워크의 거대한 다양한에서 http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2919309-provide-microsoft-fakes-with-all-visual-studio-edi

  4. 를 참조 VS Premium-을 위해 사용할 수 있습니다보고, 우리는 아주 만족합니다.

  5. 또한 .NET에서 테스트를 생성하기위한 PEX의 대안에 대해서도 알지 못합니다. AutoFixture 살펴보기, Both projects focus on auto-generating test input "AutoFixture와 Pex를 조합하여 TDD에 AutoFixture를 사용한 다음 QA에 Pex를 사용하면 효과적입니다."