Pengujian xUnit di TeamCity

Microsoft secara aktif mengembangkan proyek sumber terbuka, seperti ASP.NET Core atau MSBuild . Bersamaan dengan ini, framework pengujian xUnit semakin populer , yang digunakan di dalamnya untuk pengujian unit. Pada artikel ini, kita akan melihat beberapa cara untuk menjalankan tes xUnit untuk integrasi proyek berkelanjutan menggunakan TeamCity .







Contoh konfigurasi build dapat ditemukan di server demo TeamCity ini , dan kode sumbernya ada di repositori ini : Lib adalah kode aplikasi yang sedang diuji, dan Lib.Tests adalah proyek yang diuji. Kedua proyek ini menargetkan versi .NET dari net472 dan netcoreapp2.1 .







Untuk mendukung xUnit, proyek pengujian memiliki ketergantungan NuGet untuk paket xunit yang sesuai :







<PackageReference Include="xunit"/>









Paket meta ini tidak berisi binari, tetapi menambahkan beberapa dependensi ke paket NuGet xunit.core , xunit.assert, dan xunit.analyzers . Ini adalah API pengujian xUnit. Setiap metode pengujian di xUnit ditandai dengan atribut [Fakta] untuk pengujian reguler atau [Teori] untuk pengujian berparameter. Biasanya, setiap modul yang diuji sesuai dengan kelas pengujiannya sendiri dengan sekumpulan metode pengujian yang memeriksa satu atau beberapa logika. Setiap proyek yang diuji memiliki proyek uji sendiri.







, TeamCity . , . TeamCity , . : , TeamCity .







xUnit console runner



, xunit.console, xunit.runner.console. : , , . :







  1. xunit.console TeamCity, ?
  2. xunit.console ? xunit.runner.console .NET.
  3. , , .NET?
  4. ? , , , , .
  5. ?
  6. TeamCity?


TeamCity, 5 , .NET:







gambar







(1): “ xunit.console?”:







gambar







.NET, xunit.runner.console Lib.Tests. 2 xunit.console TeamCity. , . xunit.console ? , NuGet-:





  • Windows: %userprofile%\.nuget\packages



  • Mac/Linux: ~/.nuget/packages





, , , TeamCity, . . , xunit.console, NUGET_PACKAGES %teamcity.build.checkoutDir%/packages. , NuGet- . packages, . :







gambar







, xunit.console . . (solution), :







gambar







, packages NuGet- , xunit.runner.console, Lib.Tests/bin/Debug – , .NET. Lib.Tests/bin/Debug/net472 , Lib.Tests/bin/Debug/netcoreapp2.1 .NET CoreApp 2.1 . , _JSON-_ , . 3 .NET CoreApp 2.1:







gambar







: . :







  • Lib.Tests/bin/Debug/net472
  • Lib.Tests/bin/Debug/netcoreapp2.1/publish


xunit.console :







  • packages/xunit.runner.console/**/net472/xunit.console.exe
  • packages/xunit.runner.console/**/netcoreapp1.0/xunit.console.dll


** – xunit.runner.console.







(1) (2) . (3) , .NET. , .NET , . , , PowerShell- TeamCity Kotlin DSL. (4) (5), , , , .NET, :





  • ,
  • xunit.console.dll _xunit.console.exe _ , (, Docker, ..)


.NET:





gambar







gambar







(6): “ TeamCity?”. xunit.console , _TEAMCITY_PROJECTNAME, TeamCity . xunit.console , TeamCity service messages.







, , . - , TeamCity Meta-Runner.







Meta-Runners Power Pack



TeamCity - Power Pack - xUnit.net-dotCover, xUnit- . :







gambar







(2) . , -, :







gambar







xunit.console NuGet- xunit.runner.console .NET Framework ( .NET Framework 4.72), . 2 xunit.console .







- xUnit.net-dotCover:







  • , .NET Core .NET 5+.
  • dotCover .
  • xunit.console Xunit Runner Executable.


, - , , , , .NET Framework.







dotnet test



.NET Runner test , .NET TeamCity. :







gambar







:







  • : xUnit, NUint . .







  • , .







  • .NET TargetFrameworks, Full .NET Framework, .NET Core .NET 5+.







  • Docker-.







  • - .









Visual Studio Rider dotnet new, , dotnet new xunit -o Lib.Tests, . "", , xunit, Microsoft.NET.Test.Sdk xunit.runner.visualstudio:







<PackageReference Include="Microsoft.NET.Test.Sdk"/>









<PackageReference Include="xunit.runner.visualstudio"/>









Microsoft.NET.Test.Sdk MSBuild, , : xunit.runner.visualstudio, Visual Studio Test Platform. , , NUnit – NUnit3TestAdapter, MSTest – MSTest.TestAdapter.







xUnit .







, ! TeamCity , . TeamCity .NET, .








All Articles