【问题标题】:Test multiple projects with dotnet test using pattern使用模式使用 dotnet test 测试多个项目
【发布时间】:2019-11-19 19:50:33
【问题描述】:

我正在编写一个脚本来构建和测试存储库中的项目。现在我正在使用 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: 项目文件不存在。

【问题讨论】:

    标签: .net-core dotnet-test


    【解决方案1】:

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

    dotnet test foo/bar.sln

    【讨论】:

      【解决方案2】:

      考虑使用dotnet test --filter FullyQualifiedName!~YourTestNameOrPartName

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 这实际上不是真的。仅当有解决方案文件时才会这样做。如果您在仅包含其他文件夹的文件夹中执行dotnet test,它将找不到项目。现在才遇到这个,这很糟糕。来自文档:如果未指定,它将在当前目录中搜索项目或解决方案。
        猜你喜欢
        • 1970-01-01
        • 2018-02-15
        • 2019-05-26
        • 2016-10-11
        • 1970-01-01
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        相关资源
        最近更新 更多