.Net Core XUnit - 未使用 "dotnet test" 指定测试源文件
.Net Core XUnit - No test source files were specified using "dotnet test"
我知道这听起来可能是个小问题。我有带 xUnit 的 .net 核心项目。
我可以在我的开发环境中 运行 xUnitin visual studio。
我还可以 运行 在控制台 dotnet test Test.dll
中进行测试。 (发布后)
但我有另一台机器(构建机器),我在那里使用我发布的代码并尝试 运行“dotnet 测试”,它抛出
No test source files were specified.
这是我的test.csproj文件,我已经安装了所有推荐的包(我认为是)。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Respawn" Version="3.3.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.console" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.msbuild" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
</Project>
除此之外,我在构建机器上安装了 .Net Core 3.1 sdk
。
完成所有这些后,不应该 dotnet test
识别测试用例吗?
还有什么需要我做的吗?
找了几个小时的解决方案,终于找到了。
问题出在我的构建机器上 运行ning 并行测试。
显然构建机器无法运行 并行测试。
我就是这样解决的。
在我的测试项目中添加了一个 xunit.runner.json
文件
在下面 json 添加到文件中。
{ "parallelizeAssembly": false, "parallelizeTestCollections": false }
在下一个流水线中,运行 没有问题。
我知道这听起来可能是个小问题。我有带 xUnit 的 .net 核心项目。
我可以在我的开发环境中 运行 xUnitin visual studio。
我还可以 运行 在控制台 dotnet test Test.dll
中进行测试。 (发布后)
但我有另一台机器(构建机器),我在那里使用我发布的代码并尝试 运行“dotnet 测试”,它抛出
No test source files were specified.
这是我的test.csproj文件,我已经安装了所有推荐的包(我认为是)。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Respawn" Version="3.3.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.console" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.msbuild" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
</Project>
除此之外,我在构建机器上安装了 .Net Core 3.1 sdk
。
完成所有这些后,不应该 dotnet test
识别测试用例吗?
还有什么需要我做的吗?
找了几个小时的解决方案,终于找到了。
问题出在我的构建机器上 运行ning 并行测试。
显然构建机器无法运行 并行测试。
我就是这样解决的。
在我的测试项目中添加了一个
xunit.runner.json
文件在下面 json 添加到文件中。
{ "parallelizeAssembly": false, "parallelizeTestCollections": false }
在下一个流水线中,运行 没有问题。