Me pregunto si es posible tener pruebas xUnit en el mismo proyecto que el código fuente.
Agregué la referencia xUnit, pero cuando ejecuto las pruebas, Visual Studio me dice que el proyecto no tiene pruebas. También traté de usar Microsoft.NET.Test.Sdk , pero en ese caso se mostró un error porque el proyecto tenía dos puntos de entrada.
public class Test { [Fact] public void TestMethod() { } }La implementación y un mejor nombre de la prueba seguirán más adelante...
Obtener una aplicación de consola con la compilación de prueba xUnit es un poco complicado. Una forma de lograr esto es modificar la aplicación csproj de la consola.
Agregue la siguiente declaración en la sección PropertyGroup:
<GenerateProgramFile>false</GenerateProgramFile>el csproj final debería verse así:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <GenerateProgramFile>false</GenerateProgramFile> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" /> <PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> </ItemGroup> </Project>Para obtener más información sobre este tema, consulte esta interesante publicación de blog de Andrew Lock: "El programa tiene más de un punto de entrada definido" para aplicaciones de consola que contienen pruebas xUnit