【问题标题】:Not all Specflow Hooks are executed when running tests on vstest.console with NUnit3TestAdapter使用 NUnit3TestAdapter 在 vstest.console 上运行测试时,并非所有 Specflow Hooks 都会执行
【发布时间】:2017-05-31 10:47:30
【问题描述】:

我们使用 visualstudio.com 发布管理器告诉本地构建代理在构建代理机器上构建和执行一组 SpecFlow 测试,从 GIT 分支中提取。

我们正在使用带有自定义测试适配器 (NUnit3TestAdapter 3.7.0) 的测试程序集任务,并将其指向包含 SpecFlow 测试的程序集。同一 bin 文件夹中的其他程序集包含执行 setup 和 teardown-hooks 的 SpecFlow-Hooks。

我们面临的问题是,并非所有这些 Hooks 似乎都被调用了。 .trx 日志中的第一条和最后一条消息都来自[BeforeScenario][AfterScenario] 挂钩。但是,在同一个程序集中有 [BeforeTestRun][AfterTestRun][BeforeFeature] 钩子。

我在下面粘贴了来自 VSTS 的(删节的)日志:

执行 vstest.console.exe "DLL 包含测试" /TestCaseFilter:"TestCategory=MP2" /设置:“C:\agent_work\r17\a\TestResults\1_2017-05-31_09-31-50-AM.runsettings” /记录器:trx /TestAdapterPath:"C:\agent_work\r17\a\drop\b\packages\NUnit3TestAdapter.3.7.0\tools"

Microsoft (R) 测试执行命令行 工具版本 14.0.25420.1 2017-05-31T07:31:51.1862622Z 版权所有 (c) 微软公司。保留所有权利。

开始 测试执行,请稍候...

信息:NUnit Adapter 3.7.0.0:测试执行开始

信息:运行所有测试 C:\agent_work\r17\a\drop\b\DLL 包含测试

信息:NUnit3TestExecutor 转换了 472 个 NUnit 测试用例中的 472 个

然后是测试本身的日志记录,从来自BeforeScenario 的消息开始。

我不知道为什么从未调用其他钩子。 NUnit3TestAdapter 甚至会跟踪 TestRun 上下文吗?是因为 Before/AfterTestRun 和 Before/AfterFeature-hooks 绑定到静态方法吗?或者它们是否可能已执行,但消息从未传递到 .trx 日志?

【问题讨论】:

  • [BeforeScenario][AfterScenario] 是否在 .cs 文件中挂钩,以及在另一个 .cs 文件中的其他挂钩?我可以在.trx 文件中找到输出。或者您可以在一个驱动器中分享您的项目吗?
  • 只是为了确定,你有没有钩子的类 [Binding] 属性?这也是钩子所需要的,而不仅仅是绑定。

标签: c# visual-studio nunit specflow azure-pipelines


【解决方案1】:

原来[BeforeTestRun] 被称为非常好,但只是没有出现在日志中。问题出在[AfterTestRun],原来是 SpecFlow 中的 old bug,从未真正修复过 (?)

【讨论】:

  • 仍然没有修复,他们去了.NET Core,但还没有修复钩子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
相关资源
最近更新 更多