.NET을위한 최고의 단위 테스트 프레임 워크는 무엇이며 그 이유는 무엇입니까? [닫은]


26

다른 옵션도 고려하지 않고 모두 NUnit 을 사용하는 것으로 보입니다 . 나는 이것이 때문이라고 생각합니다.

  • 모든 사람은 이미 익숙하므로 새로운 API를 배울 필요가 없습니다.
  • NUnit과 함께 작동하도록 지속적 통합 서버로 이미 설정되어 있습니다.

내가 이것에 대해 잘못입니까?

나는 최근에 내 자신의 프로젝트 중 하나에 xUnit 을 사용하기로 결정 했으며 그것을 좋아합니다! 그것은 나에게 훨씬 더 의미가 있고 개념적으로 NUnit으로부터의 확실한 진보처럼 보입니다.

프레임 워크를 배우거나 자동화 된 테스트를 재구성 할 필요가없는 프레임 워크가 실제로 가장 좋은 의견을 듣고 싶습니다.


6
가장 잘 정의하십시오. 가장 싼? 코딩하기 가장 쉬운가? 테스트 당 가장 적은 코드 줄? stackoverflow.com/questions/680298/…
Amir Rezaei 2013

미안하지만, 나는 가장 강력하고 안정적이며 직관적이었습니다. 나는 의견과 이유 부탁 해요 이유 . 나는 사람들에게 어떤 측면이 중요한지 알고 싶기 때문에 응답자의 상상력에 '최고'를 남겼습니다.
아무도

2
당신이 당신의 질문을 다시 쓸 수 있다면 그것은 괜찮을 수도 있습니다. 그렇지 않으면 이것은 건설적이지 않은 "X 목록"질문 일뿐입니다. 건설적인 주관적인 질문에 대한 6 가지 지침을
ChrisF

2
"최고"는 물어 보는 멍청한 일입니다. 문맥에 의존하고 부분적으로는 주관적으로 불가피하기 때문에 부분적으로 하나의 최고가 거의 없기 때문입니다.
Murph

10
머프 첫째,이 사이트는 주관적인 질문을위한 것입니다. 두 번째로 의견을 묻기 위해 다른 사람들의 '최고'에 대한 해석을보고 싶습니다. 그리고 바보라고 부르지 마십시오.
아무도

답변:


15

MSTest

개인적으로 MSTest를 사용합니다. NUnit은 정말 훌륭하지만 VS2010에서는 MSTest가 이미 IDE에 완전히 통합되어 있으며 전체 프로젝트 템플릿이 있습니다. .NET의 경우 2010을 사용하는 경우 코드 범위, 테스트 러너 및 기타 사용 가능한 도구를 위해 MSTest가 갈 길이라고 생각합니다 (VS2008의 MSTest는 필자가 아닙니다) 상자 밖으로. (CodeRush 또는 R #을 사용하는 경우 다른 테스트 프레임 워크를위한 훌륭한 테스트 러너 / 도구가 있습니다)

편집 : 이후 XUnit으로 이동했습니다. :디


MbUnit / Galio와이 답변 모두에 투표했습니다. MbUnit / Galio가 더 낫지 만 .Net 라이브러리의 일부 중요한 클래스는 MsTest 테스트를 실행할 때 손이 묶여 있으며 확장 할 수 없습니다. 그러나 GUI 자동화를 수행해야하는 경우 코딩 된 UI 및 cuite.codeplex.com/documentation 이 MsTest에서 작동하므로이를 사용하는 것이 좋습니다.
Job

2
MSTest와 관련된 문제는 기본적으로 명령 줄 테스트를 지원하지 않는다는 것입니다. 이는 CI를 통해 장치를 실행하려는 경우 문제가 될 수 있습니다.
CmdrTallen

1
Nunit은 이제 VS에 완전히 통합 될 수 있습니까?
BKSpurgeon

그렇습니다. 지금은 6 살 정도 인 것을 고려하여 개인적으로 NUnit으로 옮긴 다음 XUnit으로 옮겼습니다. 둘 다 MSTest와 동일한 VS 기능을 밝게하는 어댑터 역할을하는 너겟 패키지가 있습니다. 솔직히이 시점에서 MSTest가 목록의 맨 아래에있을 것입니다. XUnit 또는 NUnit에 투표 할 것입니다. 요즘에는 둘 다 단단하고 유지 관리되고 현대적입니다.
Ryan Hayes

14

몇 년 전에 Gallio / MbUnit 을 사용하기 시작했습니다 . 그리고 그것이 제공하는 기능과 보석은 너무 강력해서 내가 선택한 것을 후회하지 않았습니다. 사실 저는 이제 Gallio OSS 프로젝트 개발 팀의 일원입니다. 더 멋지게 만드는 데 기여할 수 있습니다.

  • MbUnit 은 개발자 검증 작업을보다 쉽게 ​​만들어주는 많은 강력한 기능을 제공합니다 (계약 검증기, 테스트 팩토리, 구조적 평등 비교기, 조합 테스트, 데이터 생성 프레임 워크, 텍스트 디핑, XML 어설 션, 확장 점 등).
  • Gallio 는 훌륭한보고 도구를 사용하여 모든 테스트를 실행할 수있는 일관된 플랫폼을 제공합니다. 또한 MbUnit을 사용하지 않는 다른 OSS 프로젝트의 테스트를 통합하여 실행할 수 있다는 사실을 좋아합니다. 많은 타사 도구 내에서 완벽하게 통합하는 것도 편리합니다 (R #, PoSh, dotCover 등). 곧 출시 될 예정입니다.)

위키는 확실히 발견 갈 리오와 MbUnit에 v3으로 좋은 시작 지점입니다. 일부 챕터가 누락되었지만 이미 유용합니다.


구조적 평등 비교기와 데이터 생성 프레임 워크는 훌륭합니다. MbUnit이 데이터 중심 테스트를 수행 할 수 있습니까? 예를 들어 csv / xsd 파일을 읽고 테스트 메소드 인수로 사용할 수 있습니까? 그것은 저에게 xunit의 주요 매력 중 하나입니다.
아무도

확실한. ASAIK MbUnit은 .NET에서 데이터 중심 테스트를 도입 한 최초의 테스트 프레임 워크입니다. 테스트 파레 미터를 내부 ([행], [열] 등) 및 외부 ([CsvData], [XmlData] 등) 데이터 소스에 바인딩 할 수 있습니다. 더 자세한 사항은 여기에 : gallio.org/wiki/doku.php?id=mbunit:data-driven_testing
얀 Trevin

Gallio 및 Visual Studio에서 발생한 성능 문제를 해결 했습니까? 우리를위한 거래 킬러였습니까?
Wyatt Barnett

소규모 회사에서 일할 때 MbUnit을 사용했는데 훌륭했습니다! 나중에 MsTest를 사용해야했기 때문에 정상적으로 작동했습니다. 여전히 프로젝트 설정 구성보다 명시 적 코드 작성을 선호합니다. 기업 지원은 MSTest를 도와줍니다. 디자인이보기 흉하거나 아름답 든, MSFT에서 나오는 것은 잘 테스트 될 것입니다.
Job

@YannTrevin Gallio / MbUnit의 상태는 무엇입니까? Google 코드 저장소를 살펴본 결과 최근 변경 사항이없는 것 같습니다. 다른 곳에서 개발이 진행 중입니까? 아니면 프로젝트가 중단 되었습니까?
웨슬리 와이저

9

하나를 선택하여 사용하는 것이 아마도 가장 중요한 단계 일 것입니다.

개인적 으로 몇 가지 이유로 NUnit 을 선택합니다 . 가장 먼저 툴링 지원입니다. 거기입니다 무료 추가 기능 비주얼 스튜디오 2010는 , 모든 주요 타사 플러그인을 지원합니다. 모든 단일 빌드 시스템, 테스트 범위 유틸리티 및 CI 서버가이를 지원합니다. 대부분의 경우 플러그인이 없습니다. 코드 수준에서,이 시점에서 어떤 시나리오에 대해 바로 처리 할 수 - 데이터 기반 테스트, 상속, 추상 시험 클래스, 제네릭 테스트 클래스, 설정을 어느 정도 등을 철거 우리가 xUnit의를 NUnit를 너무 가지고 있기 때문에 다양한 기능 강력합니다.

NUnit 외에도 Yann이 언급 한 MBUnit + Gallio에 대해 꽤 괜찮은 논쟁을 할 수 있다고 생각합니다. 매우 견고한 프레임 워크입니다. 가능한 한 피해야 할 MSMS는 몇 가지 치명적인 결함이 있습니다. IMHO. 상속 없음, 전문 또는 더 나은 Visual Studio SKU에 대한 종속성과 같은 테스트 클래스의 제약 조건 중 하나 인 결함. 테스트를 실행하려면 빌드 서버에 Visual Studio를 설치해야합니다.


0

한 가지 이유는 NUNIT가 xUnit보다 더 산업 표준이되기 때문입니다. 그러나 개인적으로 저는 xunit을 좋아합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.