XUnit 测试可以 运行 来自要测试的项目吗?
Can XUnit tests be run from within the project to be tested?
我想知道是否可以在与源代码相同的项目中进行 xUnit 测试?
我添加了 xUnit 引用,但是当我执行测试时,Visual Studio 告诉我该项目没有测试。我也尝试使用 Microsoft.NET.Test.Sdk
,但在那种情况下会显示错误,因为该项目有两个入口点。
public class Test
{
[Fact]
public void TestMethod()
{
}
}
Implementation and better naming of the test will follow later...
要通过 xUnit Test 编译获得控制台应用程序有点棘手。实现此目的的一种方法是调整控制台 App csproj。
在 PropertyGroup 部分添加以下语句:
<GenerateProgramFile>false</GenerateProgramFile>
最终的 csproj 应如下所示:
<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>
有关此主题的进一步阅读,请参阅 Andrew Lock 的这篇有趣的博客 post:"Program has more than one entry point defined" for console apps containing xUnit tests
我想知道是否可以在与源代码相同的项目中进行 xUnit 测试?
我添加了 xUnit 引用,但是当我执行测试时,Visual Studio 告诉我该项目没有测试。我也尝试使用 Microsoft.NET.Test.Sdk
,但在那种情况下会显示错误,因为该项目有两个入口点。
public class Test
{
[Fact]
public void TestMethod()
{
}
}
Implementation and better naming of the test will follow later...
要通过 xUnit Test 编译获得控制台应用程序有点棘手。实现此目的的一种方法是调整控制台 App csproj。
在 PropertyGroup 部分添加以下语句:
<GenerateProgramFile>false</GenerateProgramFile>
最终的 csproj 应如下所示:
<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>
有关此主题的进一步阅读,请参阅 Andrew Lock 的这篇有趣的博客 post:"Program has more than one entry point defined" for console apps containing xUnit tests