Specflow - 在 Azure 管道中执行多个测试项目,但 vstests 失败
Posted
技术标签:
【中文标题】Specflow - 在 Azure 管道中执行多个测试项目,但 vstests 失败【英文标题】:Specflow - Execute multiple test project in Azure pipeline with vstests failed 【发布时间】:2021-10-29 08:14:12 【问题描述】:所以我有一个几周前开始的问题 问题是当我在 azure devops 管道中使用 vstest 作为测试引擎运行 SpecFlow 项目时,会抛出以下异常错误消息:
进程无法访问文件 'D:\a\1\sprojectName\bin\Debug\netcoreapp3.1\bin\Debug\ResultsprojectName_specificDate.log',因为它正在被另一个进程使用。
'.log' 文件位于内部文件夹中是由于我尝试过的一种可能的解决方案(在 SpecFlow 的 .srprofile 中,我将 'outputFolder="bin\Debug\Results"' 属性添加到 'Settings'标签),但它没有帮助。 很明显,我更新了specflow的所有nuget包
我尝试在 'dotnet' 测试引擎中使用,但没有发生。
它不会在本地重现,仅当我尝试从 azure 执行时。
我尝试添加“使用 .NET Core 任务”,但没有解决问题。
问题发生在每个项目/dll
安装在解决方案中的 Specflow 库:
规范流 SpecFlow.Tools.MsBuild.Generation SpecRun.SpecFlow所以我的问题是: 可能是什么原因? 除了 specflow 本身,其他进程如何尝试访问日志文件?
【问题讨论】:
【参考方案1】:更改顶部的构建配置(如果在“Release”中为“Debug”,反之亦然),构建然后更改回之前的配置并再次构建。
打开.Net核心进程运行和阻塞,如果在windows上,只需通过任务管理器将其杀死。
尝试关闭并重新启动 VS 以释放文件上的锁定。
【讨论】:
感谢您的评论 问题发生在 azure 管道中,如果可行,我将尝试更改构建配置并更新。以上是关于Specflow - 在 Azure 管道中执行多个测试项目,但 vstests 失败的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的多阶段完整 yaml azure devops 管道在移动到模板时会中断?
如何在 Azure 数据工厂中为与外键相关的表创建管道并执行复制活动?