.Net 5 시대의 테스트 프레임워크 비교

이 기사는 C# Advent Calendar 2020의 8일째 기사입니다.

Microsoft 공식 문서 .NET에서 테스트 - .NET Core | Microsoft Docs에서 설명하는 세 가지 주요 xUnit, NUnit, MSTest 프레임 워크를 비교해보십시오.

결론, 어떤 것을 사용해야 하는가?



새로운 프로젝트라면 xUnit이나 NUnit을 사용하면 좋다고 생각합니다. 과거 프로젝트의 마이그레이션이라면 그 프로젝트에서 사용하고 있는 프레임워크로 좋다고 생각합니다.

Visual Studio에서 실행, CLI(dotnet test) 실행, 예외 및 데이터 기반 테스트(Theory, DataSource)와 같은 주요 기능은 모든 프레임워크에서 지원됩니다.

개인적으로는 xUnit을 쓰는 방법을 좋아하기 때문에 xUnit을 사용하는 경우가 많습니다.

트렌드



xUnit과 NUnit이 인기이며 MSTest는 낮은 결과입니다. 2020/12/6에서의 측정입니다.

지난 1년간 NuGet



xUnit, NUnit, MSTest 순서입니다. MSTest는 매우 낮습니다.

NuGet Trends



GitHub



Stars를 보면 xUnit이 많네요. NUnit도 그렇습니다. MSTest는 매우 적습니다.

Github Compare



2020년 검색어



일본에서 보면 xUnit이 조금 낮습니다. NUnit, MSTest는 같은 비율입니다.

Japan - xUnit, NUnit, MSTest - Explore - Google Trends



전세계에서 보면 xUnit, NUnit이 높습니다. MSTest는 낮습니다.

Worldwide - xUnit, NUnit, MSTest - Explore - Google Trends



세세한 이야기(더 알고 싶은 사람용)



xUnit, NUnit은 모두 .NET Foundation이 소유자이고 MSTest는 Microsoft가 소유자입니다. 그래서 모두 Microsoft에서 만든 것 같습니다.
실제로 Microsoft 관련 GitHub Repository를 살펴보면 dotnet/aspnetcoreAzure/azure-powershell은 xUnit을 사용하고 dotnet/maui은 NUnit을 사용합니다.
일본에서 C# 프레임워크와 라이브러리로 유명한 기업인 Cysharp, Inc의 비교적 새로운 리포지토리Cysharp/ConsoleAppFramework는 xUnit을 사용하고 있습니다.
MSTest는 GitHub을 검색해 보았습니다 mstest · GitHub Topics.

라이센스는 NUnit 과 MSTest 는 MIT License 로, xUnit 만 Apache License 2.0 (※ LICENCE 파일의 기입이 특수하지만 아마 맞아 있을 것)입니다. 그래서 모두 라이센스 표기로 사용할 수 있습니다. 상용 등 별로 신경 쓰지 않아도 괜찮네요.

각각의 기능이나 코드의 작성 방법의 차이등은 Unit Testing Frameworks: XUnit vs. NUnit vs. MSTEST for .NET and .NET Core | by Robin Ding | MediumComparing xUnit.net to other frameworks > xUnit.net가 참고가 된다고 생각합니다. 내용은 영어이지만 표 형식이므로 이해할 수 있을까 생각합니다.

.NET 5와 각각의 테스트 프레임워크로 만든 소스 코드는 KtoZ/dotNet5TestFrameworkDifference 에 놓여 있으므로 참고해 주세요.

참고


  • xUnit
  • 공식: ぅ t. 뿌리 t
  • GitHub: GitHub - xunit/xunit: xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework.
  • NuGet: NuGet Gallery | xunit

  • NUnit
  • 공식: 누니 t. 오 rg
  • GitHub: GitHub - nunit/nunit: NUnit 3 Framework
  • NuGet: NuGet Gallery | NUnit

  • MSTest
  • GitHub: GitHub - microsoft/testfx: MSTest V2 framework and adapter
  • NuGet: NuGet Gallery | MSTest.TestFramework

  • 좋은 웹페이지 즐겨찾기