失败的测试在Azure DevOps管道中成功运行

时间:2020-06-08 09:32:48

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

我有一个ASP.NET Web窗体项目,该项目托管在Azure DevOps存储库中。源代码控制是TFS。

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

enter image description here

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

enter image description here

但是在运行CI时,它告诉我没有测试失败: enter image description here

在这里您可以看到我的设置以及VSTest-TestAssemblies任务的测试路径: enter image description here

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

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管道内没有失败?

1 个答案:

答案 0 :(得分:1)

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

测试文件
从指定的文件运行测试。可以通过分别指定.orderedtest.webtest文件来运行有序测试和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结尾,它也为将来添加测试项目做好了准备。