gpt4 book ai didi

c# - Webdriver,在生成报告之前使用 "AfterScenario"重新运行失败的测试

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:08 24 4
gpt4 key购买 nike

是否可以在“AfterScenario”阶段重新运行刚刚失败的当前测试?据我所知,报告中出现了AfterScenario期间的Console.WriteLine,所以报告是在“AfterScenario”之后生成的。

ScenarioContext 类可以检测 Scenario 是否失败。也许它也可以启动一个场景?执行此操作的任何其他方式也是可以接受的。

编辑:回到“BeforeScenario”可能也行。

最佳答案

我想说这是不可能的,但就像 IT 中的许多事情一样,如果你施加足够的压力,你可能会强制它工作。

所以我会说 SpecFlow 肯定不是为了支持这个而设计的。考虑运行测试中通常涉及的所有部分,

  • 主机,例如 Visual Studio、构建过程(例如 TeamCity Agent)或只是一个 Cmd 行。这些都是通过调用来启动测试的;
  • 测试运行器。它可以是 VS 或 Resharper 测试运行器、TeamCity Nunit 运行器或什至只是 nunit.console.exe(或 msTest 等价物)。这将加载您的测试 dll 并扫描它们以查找 nunit/mstest [Test]\[Setup]\[TearDown] 属性。

  • 测试 dll 包含 SpecFlow 插件生成的代码,并将 nUnit 属性映射到 SpecFlow 属性。

我认为您只考虑了最后一层而不是最上面的那些。因此,即使您以某种方式设法说服 SpecFlow 和 nUnit/msTest 再次运行这些测试,我认为您最终会在整个过程中遇到错误,因为 VisualStudio、Resharper、TeamCity Agents 或 CmdLine 无法解析正在运行的相同测试两次。


或者,您为什么不查看优化的测试运行器来解决您的问题。

  • TeamCity nUnit 运行器可以首先运行上次失败的测试,因此您可以很快知道是否会再次失败。
  • NCrunch 允许您选择引擎模式,这样您就可以只运行之前失败的测试,或受代码更改影响的测试,或两者兼而有之(通过自定义规则)。

关于c# - Webdriver,在生成报告之前使用 "AfterScenario"重新运行失败的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com