A Microsoft está desenvolvendo ativamente seus projetos de código aberto, como ASP.NET Core ou MSBuild . Junto com isso, a estrutura de teste xUnit está ganhando popularidade , que é usada neles para testes de unidade. Neste artigo, veremos várias maneiras de executar testes xUnit para integração contínua de projeto usando TeamCity .
As configurações de construção de amostra podem ser encontradas neste servidor de demonstração TeamCity e o código-fonte está neste repositório : Lib é o código do aplicativo em teste e Lib.Tests é o projeto com testes. Ambos os projetos são direcionados às versões .NET de net472 e netcoreapp2.1 .
Para dar suporte ao xUnit, o projeto de teste tem uma dependência NuGet para o pacote xunit correspondente :
<PackageReference Include="xunit"/>
Este meta pacote não contém binários, mas adiciona várias dependências aos pacotes NuGet xunit.core , xunit.assert e xunit.analyzers . Esta é a API de teste xUnit. Cada método de teste em xUnit é marcado com o atributo [Fato] para testes regulares ou [Teoria] para testes parametrizados. Normalmente, cada módulo testado corresponde à sua própria classe de teste com um conjunto de métodos de teste que verificam uma ou outra lógica. Cada projeto testado tem seu próprio projeto de teste.
, TeamCity . , . TeamCity , . : , TeamCity .
xUnit console runner
, xunit.console, xunit.runner.console. : , , . :
- xunit.console TeamCity, ?
- xunit.console ? xunit.runner.console .NET.
- , , .NET?
- ? , , , , .
- ?
- TeamCity?
TeamCity, 5 , .NET:

(1): “ xunit.console?”:

.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, . :

, xunit.console . . (solution), :

, 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:

: . :
- 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, ..)


(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- . :

(2) . , -, :

xunit.console NuGet- xunit.runner.console .NET Framework ( .NET Framework 4.72), . 2 xunit.console .
- , .NET Core .NET 5+.
- dotCover .
- xunit.console Xunit Runner Executable.
, - , , , , .NET Framework.
dotnet test
.NET Runner test , .NET TeamCity. :

:
: 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, .