我有一个ASP.NET Web窗体项目,该项目托管在Azure DevOps存储库中。源代码控制是TFS。
我在Azure Devops中为存储库创建了一个持续集成管道。 这是管道的图像:
管道中的所有任务都在VSTest-TestAssemblies
任务旁边正常运行。
我的NUnit测试在我的本地Visual Studio中失败,因为它应该:
在这里您可以看到我的设置以及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管道内没有失败?
答案 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
结尾,它也为将来添加测试项目做好了准备。