Proj1103: TUnit test projects must be executable

TUnit leverages source generators to locate and register tests as opposed to reflection. TUnit does this by building upon the Microsoft.Testing.Platform.

As a result the output type of a TUnit test project must be an executable. Note that the use of TUnit.Assertions is not affected.

See: TUnit FAQ

Non-compliant

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <OutputType>library</OutputType>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>

  <ItemGroup Label="Build tools">
    <PackageReference Include="TUnit" Version="0.13.20" PrivateAssets="all" />
  </ItemGroup>

</Project>

Compliant

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <OutputType>exe</OutputType>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>

  <ItemGroup Label="Build tools">
    <PackageReference Include="TUnit" Version="0.13.20" PrivateAssets="all" />
  </ItemGroup>

</Project>