我正在处理一个Visual Studio C#项目,我需要知道它使用的是什么单元测试框架,但是没有人可以问。我怎么能检查呢?
w8f9ii691#
这里最可靠的方法是查看测试项目所具有的项目引用(在IDE中通过展开解决方案资源管理器中的“References”,或者直接查看csproj)。您可能会找到xunit、nunit、mstest之类的内容,或者其他指示您正在使用的内容的内容。注意,这通常是加上Microsoft.NET.Test.Sdk,这与使它可测试有关;例如,我有一个xunit项目,其中包括:
Microsoft.NET.Test.Sdk
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
底部两个用于集成目的;最上面的一个是实际的测试框架参考。
ktecyv1j2#
有两件不同的事情需要注意。首先是代码中使用的测试框架。最常见的是nUnit、xUnit和MSTest。这很容易通过查看项目的引用或安装的NuGet包来检查。但是,Visual Studio需要能够发现和运行这些测试。为此,每个测试框架通常都有一个适配器,作为Visual Studio插件(通常是旧版本)或作为参考或NuGet包安装。对于nUnit,这将是NUnit3TestAdapter或xUnit Xunit.Runner.VisualStudio。
ldioqlga3#
如果你不在乎花几秒钟的时间,你应该使用正式的方法来确定csproj文件是否包含测试:
dotnet test --list-tests <project.csproj>
相关文档https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test这将列出该项目中的所有测试,而不执行它们。
3条答案
按热度按时间w8f9ii691#
这里最可靠的方法是查看测试项目所具有的项目引用(在IDE中通过展开解决方案资源管理器中的“References”,或者直接查看csproj)。您可能会找到xunit、nunit、mstest之类的内容,或者其他指示您正在使用的内容的内容。
注意,这通常是加上
Microsoft.NET.Test.Sdk
,这与使它可测试有关;例如,我有一个xunit项目,其中包括:底部两个用于集成目的;最上面的一个是实际的测试框架参考。
ktecyv1j2#
有两件不同的事情需要注意。
首先是代码中使用的测试框架。最常见的是nUnit、xUnit和MSTest。这很容易通过查看项目的引用或安装的NuGet包来检查。
但是,Visual Studio需要能够发现和运行这些测试。为此,每个测试框架通常都有一个适配器,作为Visual Studio插件(通常是旧版本)或作为参考或NuGet包安装。对于nUnit,这将是NUnit3TestAdapter或xUnit Xunit.Runner.VisualStudio。
ldioqlga3#
如果你不在乎花几秒钟的时间,你应该使用正式的方法来确定csproj文件是否包含测试:
相关文档https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test
这将列出该项目中的所有测试,而不执行它们。