使用模式使用 dotnet test 测试多个项目

Val*_*tor 7 .net-core dotnet-test

我正在编写一个脚本来在存储库中构建和测试项目。现在,我使用 PowerShell 命令Get-ChildItem -Path test -Filter *.csproj -Recurse | ForEach-Object { dotnet test $_.FullName -c $Configuration }获取我的测试文件夹中的所有 .csproj 文件并在其中运行测试。但是,例如,当我运行时,我注意到dotnet test test/ProjectA/ProjectA.csproj我收到以下消息:

共有 1 个测试文件与指定的模式匹配。

看到这一点,我认为可以使用一种模式通过一个命令在多个项目中运行测试,但我找不到它的文档或让它工作。当我尝试时,dotnet test test/**/*.csproj我得到:

MSBUILD:错误 MSB1009:项目文件不存在。

sat*_*esh 7

目前似乎不支持。目前,最接近的替代方法是将解决方案文件路径传递给dotnet test命令。这样,它将运行添加到解决方案的所有项目的所有测试。

dotnet test foo/bar.sln


Dej*_*jan 1

目前不支持这种方式的模式匹配。但是您可以简单地调用dotnet test而不需要进一步的参数,它会自动在当前目录中搜索测试项目(请参阅文档

  • 这实际上不是真的。仅当存在解决方案文件时才有效。如果您在只包含其他文件夹的文件夹内执行“dotnet test”,它将找不到项目。现在刚遇到这个问题,真是太糟糕了。来自文档:如果未指定,它将在当前目录中搜索项目或解决方案。 (10认同)