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 数据工厂中为与外键相关的表创建管道并执行复制活动?

通过 GitLab 部署 Azure 数据工厂管道

Azure 数据工厂:执行管道活动无法引用调用管道,需要循环行为

如何使用 Azure 数据工厂管道创建容器?

为啥管道在 Azure 数据工厂中永远停留在排队状态?