【问题标题】:Failing test running successful in Azure DevOps Pipeline在 Azure DevOps Pipeline 中成功运行失败的测试
【发布时间】:2020-06-08 09:32:48
【问题描述】:

我有一个托管在 Azure DevOps 存储库上的 ASP.NET Web Forms 项目。源代码控制是 TFS。

我在 Azure Devops 中为存储库创建了一个持续集成管道。 这是管道的图像:

管道中的所有任务在VSTest-TestAssemblies 任务旁边正常运行。 我的 NUnit 测试在我的本地 Visual Studio 中失败了,因为它应该:

但是在运行我的 CI 时,它告诉我没有测试失败:

在这里你可以看到我的设置和我对VSTest-TestAssemblies 任务的测试路径:

这是我项目的文件夹结构的样子:

NR.TestAutomation
- NR.TestAutomation
- NR.TestAutomation.Tests
  - bin
  - obj
  - DemoTests.cs
  - NR.TestAutomation.Tests.csproj
- packages
- NR.TestsAutomation.sln

CI 运行的输出告诉我,该文件夹存在并且它甚至找到了测试:

Source filter: **/*Tests/*.cs
SystemVssConnection exists true

vstest.console.exe "D:\a\9\s\NR.TestAutomation.Tests\DemoTests.cs"

为什么我的失败测试没有在 Azure DevOps Pipeline 中失败?

【问题讨论】:

    标签: asp.net azure-devops webforms continuous-integration azure-pipelines


    【解决方案1】:

    您应该指定要运行的(输出)TestProject,而不是包含测试的单个文件。测试运行程序无法执行.cs file
    简而言之;失败的测试没有在 Azure DevOps 管道中成功运行......它根本没有在管道中运行

    测试文件
    从指定的文件运行测试。可以通过分别指定.orderedtest.webtest 文件来运行有序测试和网络测试。要运行 .webtest,需要 Visual Studio 2017 Update 4 或更高版本。文件路径是相对于搜索文件夹的。支持多行 minimatch 模式。

    来源Visual Studio Test task - Arguments

    也可能很有趣:File matching patterns reference 上的更多信息

    编辑:

    我的测试的正确源路径是什么?

    当然,这取决于您的测试项目的名称。查看您的屏幕截图,您可以使用**/*.Tests.dll。这会递归匹配名称以 .Tests.dll 结尾的所有程序集。
    由于您的项目名称为NR.TestAutomation.Tests,因此程序集应命名为NR.TestAutomation.Tests.dll,以便匹配。它还可以为将来添加的测试项目做好准备,只要它们的名称以 .Tests 结尾。

    【讨论】:

    • 感谢您的回答,我的测试的正确源路径是什么?
    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2022-08-06
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多