NUnit
NUnit원저작자 | 찰리 풀, 제임스 뉴커크, 알렉세이 보론초프, 마이클 투, 필립 크레이그, 롭 프루즈, 시몬 부솔리, 닐 콜빈 |
---|---|
개발자 | 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, 공동개발자