NUnit
NUnitWindows에서의 NUnit 2.4.6 GUI | |
| 원저작자 | 찰리 풀, 제임스 뉴커크, 알렉세이 보론초프, 마이클 투, 필립 크레이그, 롭 프루즈, 시몬 부솔리, 닐 콜빈 |
|---|---|
| 개발자 | NUnit 프로젝트, .NET 파운데이션 |
| 안정된 릴리스 | 3.13.2 / 2021년 4월 27일; 전( |
| 저장소 | github |
| 기입처 | C# |
| 운영 체제 | .NET 프레임워크, 모노 |
| 유형 | 유닛 테스트 도구 |
| 면허증. | 3.0용 MIT 라이선스, 2.x용 BSD 스타일(zlib 라이선스 변경) |
| 웹 사이트 | www |
NUnit은 의 오픈소스 유닛 테스트 프레임워크입니다.NET Framework 및 Mono.JUnit이 Java 세계에서 사용하는 것과 동일한 목적을 수행하며 xUnit [citation needed]패밀리의 많은 프로그램 중 하나입니다.
특징들
- 테스트는 콘솔 러너, [1]테스트 어댑터를 통해 Visual Studio 내 또는 서드파티 러너를 통해 실행할 수 있습니다.
- 테스트는 [2]병렬로 실행할 수 있습니다.
- 데이터 기반 [3]테스트에 대한 강력한 지원
- 등 여러 플랫폼을 지원합니다.NET Core,[4] Xamarin Mobile,[5] Compact[6] Framework 및 Silverlight.[7]
- 모든 테스트 케이스를 하나 이상의 카테고리에 추가하여 선택적으로 [8]실행할 수 있습니다.
NUnit은 테스트 배치 실행에 사용되는 콘솔러너(nunit3-console.exe)를 제공합니다.콘솔 러너는 NUnit Test Engine을 통해 작동하며 로드, 탐색 및 테스트를 실행할 수 있습니다.별도의 프로세스로 테스트를 실행하는 경우 엔진은 [citation needed]Nunit-agent 프로그램을 사용하여 테스트를 실행합니다.
NUnitLite 러너는 단순한 러너가 더 적합한 상황에서 사용할 수 있습니다.이를 통해 개발자는 [citation needed]자가 실행 테스트를 작성할 수 있습니다.
어설션
NUnit은 다양한 어설션 세트를 스태틱한 방법으로 제공합니다.Assert클래스. 어설션이 실패하면 메서드 호출이 반환되지 않고 오류가 보고됩니다.테스트에 여러 개의 아사션이 포함되어 있는 경우 실패한 아사션 뒤에 이어지는 아사션은 실행되지 않습니다.이러한 이유로,[citation needed] 보통 테스트당 하나의 주장을 시도하는 것이 가장 좋습니다.
Nunit 3.x는 여러 어설션을 지원하고 있습니다.
[테스트] 일반의 무효 복합 번호시험() { 복합 번호 결과 = 일부 계산(); 주장하다.복수(() => { 주장하다.동등.(5.2, 결과.리얼 파트, "진짜 파트"); 주장하다.동등.(3.9, 결과.상상 부품, "상상 부분"); }); } 고전적인
NUnit 2.4보다 이전 버전에서는Assert클래스가 각 어설션에 사용되었습니다.많은 사람들이 [citation needed]선호하기 때문에 NUnit에서 계속 지원되고 있습니다.
각 아사트 메서드는 메시지 없이 단순한 텍스트메시지 또는 메시지와 인수를 사용하여 호출할 수 있습니다.마지막 예에서는 지정된 텍스트와 [citation needed]인수를 사용하여 메시지의 형식이 지정됩니다.
// 평등 주장 주장하다.동등.(물건 기대됩니다, 물건 실제.); 주장하다.동등.(물건 기대됩니다, 물건 실제., 스트링 메세지, 파라미터 물건[] 파마); 주장하다.Are Not Equal(동일하지 않음)(물건 기대됩니다, 물건 실제.); 주장하다.Are Not Equal(동일하지 않음)(물건 기대됩니다, 물건 실제., 스트링 메세지, 파라미터 물건[] 파마); // 아이덴티티 어설트 주장하다.AreSame(물건 기대됩니다, 물건 실제.); 주장하다.AreSame(물건 기대됩니다, 물건 실제., 스트링 메세지, 파라미터 물건[] 파마); 주장하다.Are Not Same(동일하지 않음)(물건 기대됩니다, 물건 실제.); 주장하다.Are Not Same(동일하지 않음)(물건 기대됩니다, 물건 실제., 스트링 메세지, 파라미터 물건[] 파마); // 조건이 단언됨 // (간단히 하기 위해 메시지시그니처가 있는 메서드는 생략됩니다). 주장하다.Is True(실제)(부울 조건.); 주장하다.IsFalse(부울 조건.); 주장하다.Is Null(물건 오브젝트); 주장하다.IsNotNull(물건 오브젝트); 주장하다.IsNaN(이중으로 하다 a더블); 주장하다.Is Empty(비어 있음)(스트링 a스트링); 주장하다.Is Not Empty(비어 있지 않음)(스트링 a스트링); 주장하다.Is Empty(비어 있음)(ICollection(ICollection) 수집); 주장하다.Is Not Empty(비어 있지 않음)(ICollection(ICollection) 수집); 제약 조건 기반
NUnit 2.4부터 새로운 제약 기반 모델이 도입되었습니다.이 접근법에서는 단일 방법으로Assert모든 어설션의 클래스, 패스Constraint수행할 테스트를 지정하는 개체입니다.이 제약 조건 기반 모델은 현재 NUnit에 의해 모든 어설션에 내부적으로 사용됩니다.이 새로운 [citation needed]모델 위에 고전적인 접근 방식이 다시 구현되었습니다.
예
NUnit 테스트 [citation needed]고정 장치의 예:
사용. NUnit.프레임워크; [테스트용 도료] 일반의 학급 테스트의 예NUnit { [테스트] 일반의 무효 테스트 곱셈() { 주장하다.동등.(4, 2*2, "곱셈"); // 마찬가지로 버전 2.4 NUnit은 새로운 기능과 // 제약 조건 개체를 기반으로 한 보다 직관적인 어설션 구문 // [http://www.nunit.org/index.php?p=constraintModel&r=2.4.7] : 주장하다.그거(2*2, 이.등가(4), "복수 제약 조건 기반"); } } // 다음 예제에서는 동일한 예외 테스트를 작성하는 다양한 방법을 보여 줍니다. [테스트용 도료] 일반의 학급 Assert Throws 테스트 { [테스트] 일반의 무효 테스트() { // .NET 1.x 주장하다.던지다(유형(논쟁예외.), 신규 테스트 대리인(메서드 That Throws)); // .NET 2.0 주장하다.던지다< >논쟁예외.>(메서드 That Throws); 주장하다.던지다< >논쟁예외.>( 위임하다 { 던지다 신규 논쟁예외.(); }); // C# 3.0 사용 주장하다.던지다< >논쟁예외.>( () => { 던지다 신규 논쟁예외.(); }); } 무효 메서드 That Throws() { 던지다 신규 논쟁예외.(); } } // 이 예에서는 리턴 값을 사용하여 예외를 추가로 확인하는 방법을 보여 줍니다. [테스트용 도료] 일반의 학급 Return Value 사용 { [테스트] 일반의 무효 테스트 예외() { 마이익스펙션 ex = 주장하다.던지다< >마이익스펙션>( 위임하다 { 던지다 신규 마이익스펙션("메시지, 42); }); 주장하다.그거(ex.메세지, 이.등가("메시지)); 주장하다.그거(ex.마이패람, 이.등가(42)); } } // 이 예에서는 제약조건을 포함한 오버로드를 사용하여 동일한 작업을 수행합니다. [테스트용 도료] 일반의 학급 Using Constraint(사용 제약) { [테스트] 일반의 무효 테스트 예외() { 주장하다.던지다(이.종류< >마이익스펙션>() .그리고..메세지.등가("메시지) .그리고..소유물('마이패람).등가(42), 위임하다 { 던지다 신규 마이익스펙션("메시지, 42); }); } } NUnit 프레임워크는 이 방법을 검출합니다.ExampleTestOfNUnit.TestMultiplication()자동으로 [citation needed]반영됩니다.
내선번호
FireBenchmarks는 장치 테스트 실행 시간을 기록하고 차트 및 이력 추적을 통해 XML, CSV, XHTML 성능 보고서를 생성할 수 있는 추가 기능입니다.주요 목적은 민첩한 방법론을 사용하는 개발자 또는 팀이 성능 메트릭과 분석을 유닛 테스트 환경에 통합하여 알고리즘의 복잡성과 시스템 리소스 [citation needed]부하 측면에서 소프트웨어 시스템의 진화를 쉽게 제어 및 감시할 수 있도록 하는 것입니다.
NUnit.Forms는 핵심 NUnit 프레임워크의 확장이며 오픈 소스이기도 합니다.특히 Windows Forms에서 사용자 인터페이스 요소의 테스트를 처리할 수 있도록 NUnit를 확장하는 것에 대해 설명합니다.2013년 1월 현재, Nunit.양식은 Alpha 릴리즈로 2006년 [citation needed]5월 이후 출시되지 않았습니다.
NUnit.ASP는 핵심 NUnit 프레임워크에 대한 확장이 중단되었으며[9] 오픈 소스이기도 합니다.구체적으로는 ASP에서 사용자 인터페이스 요소의 테스트를 처리할 수 있도록 NUnit을 확장하는 것을 검토하고 있습니다.그물[citation needed]
「 」를 참조해 주세요.
- 테스트 자동화
- 의 유닛 테스트 프레임워크 목록.NET 프로그래밍 언어(xUnit 기반 열을 포함)
- XUnit.net
- 쥬닛
레퍼런스
- ^ "NUnit 3 Test Adapter".
- ^ "Parallelizable Attribute".
- ^ "TestCaseData".
- ^ Prouse, Rob (2015-11-04). "Testing .NET Core using NUnit 3".
- ^ Prouse, Rob (2015-03-25). "NUnit 3.0 Test Runner for Android and iOS".
- ^ "NUnit Version 3 for Compact Framework".
- ^ "NUnit Version 3 for SilverLight 5.0".
- ^ "CategoryAttribute". Retrieved 2015-12-15.
- ^ "NUnit.ASP website main page". SourceForge. Retrieved 2008-04-15.
참고 문헌
- 헌트, 앤드류Thomas, David (2007).NUnit을 사용한 C#의 실용 유닛 테스트, 제2판The Pragmatic Bookbook (Raleigh), 2007.ISBN 0-9776166-7-3.
- Newkirk, Jim, Vorontsov, Alexei(2004).Microsoft의 테스트 주도의 개발.NET. Microsoft Press (Redmond), 2004.ISBN 0-7356-1948-4.
- 해밀턴, 빌(2004년).NUnit 포켓 레퍼런스.O'Reilly (Cambridge), 2004.ISBN 0-596-00739-6.
외부 링크
- 공식 웹사이트
- GitHub 사이트
- Launchpad 사이트(유지보수 불필요)
- NUnit 및 Test-driven을 사용한 테스트 주도의 개발.NET 비디오 데모
- NUnit.양식 홈 페이지
- NUnitAsp 홈페이지
- 테스트 주도의 개발을 이용한 어플리케이션 품질 향상 기사 Nunit을 사용한 구체적인 예와 함께 TDD 소개
- Nunit 테스트를 병렬로 실행할 수 있는 오픈 소스 도구
- 찰리 풀, 공동개발자
- Rob Prouse, 공동 개발자
- Simone Busoli, 공동개발자
