我正在尝试根据单元测试的成功在Azure DevOps(VSTS)中实现门控检入过程。但是,我一直收到这样的警告/错误:找不到程序集。
##[warning]No test assemblies found matching the pattern: **\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**.
##[debug]Processed: ##vso[task.issue type=warning;]No test assemblies found matching the pattern: **\*Test*.dll,!**\*TestAdapter.dll,!**\obj\**.
======================================================
Run Code Online (Sandbox Code Playgroud)
我的所有单元测试都在Visual Studio 2017的本地本地成功运行。
在Azure的DevOps的文档看起来非常简单,但是当我跟着它,它不工作。
我正在使用托管VS2017代理。CI Build本身在签入TFS源代码控制后成功。
Jer*_*enW 12
“旧” .NET的文件位于Release文件夹中(由BuildConfiguration变量描述)。
.NET Core版本包含一个额外的文件夹:
YourNamespaceHere.UnitTests > bin > Release > netcoreapp2.1 > dll's
当您添加额外的通配符时,构建将找到unittest dll。
**\$(BuildConfiguration)\*\*unittests.dll
我将*Tests*零件重命名为,*unittests.dll因为我的项目还包含集成测试。
我在 .Net Core 2.1 项目中遇到了同样的问题。在您要添加的“其他控制台选项”中:
/Framework:.NETCoreApp,Version=v2.1 /logger:console;verbosity="normal"
Run Code Online (Sandbox Code Playgroud)
请注意,我遇到了另一个与此无关但在同一任务上的问题。我收到一个关于找不到 TestPlatform dll 的测试文件结果输出的错误。因此,我将此过滤器添加到现有测试文件中:
!**\*Microsoft.VisualStudio.TestPlatform*
Run Code Online (Sandbox Code Playgroud)
我的最终 yaml 如下所示:
- task: VSTest@2
displayName: 'Run Unit Tests'
inputs:
testAssemblyVer2: |
**\$(BuildConfiguration)\*test*.dll
**\$(BuildConfiguration)\**\*test*.dll
!**\*Microsoft.VisualStudio.TestPlatform*
!**\obj\**
vstestLocationMethod: 'location'
vstestLocation: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform\'
codeCoverageEnabled: True
otherConsoleOptions: '/platform:x64 /Framework:.NETCoreApp,Version=v2.1 /logger:console;verbosity="normal" '
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4067 次 |
| 最近记录: |