为什么 dotnet test project.csproj --filter category=unit 在 Azure DevOps 中失败?

Why dotnet test project.csproj --filter category=unit fails in Azure DevOps?

我的解决方案是在 Azure DevOps 中构建的。由于该解决方案具有单元测试和集成测试,因此我需要进行过滤以避免总是编辑构建定义。在我的笔记本电脑上,以下命令运行良好并且只执行我需要的测试。

dotnet test project.csproj --filter Category=Unit

但是,它在 Azure DevOps 中失败并显示以下消息。

[command]/usr/bin/dotnet test --filter Category=Unit {...}/{...}.Tests.csproj --configuration Release
No executable found matching command "dotnet-test --filter Category=Unit"
##[error]Error: /usr/bin/dotnet failed with return code: 1

测试项目有以下 nuget 包:

<ItemGroup>
        <PackageReference Include="FluentAssertions" Version="5.6.0" />
        <PackageReference Include="FluentValidation" Version="8.2.3" />
        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.1" />
        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.4" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.4" />
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
        <PackageReference Include="xunit" Version="2.4.1" />
        <PackageReference Include="xunit.analyzers" Version="0.10.0" />
        <PackageReference Include="xunit.runner.console" Version="2.4.1" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
    </ItemGroup>

构建设置:

您不需要 自定义命令,只需将 Command 字段更新为 Test 并将用于过滤的参数标志移动到 Arguments: