为什么在组中的每个测试之前都执行Before Group中的代码



我的目标是在属于某个组的每个测试之前阻止浏览器重新启动。我有一个GroupObject(如中所述https://codeception.com/docs/08-Customization)它监听测试组"pay_form"的事件:

<?php
namespace Group;
class PayForm extends CodeceptionGroupObject
{
public static $group = "pay_form";
public function _before(CodeceptionEventTestEvent $e)
{
var_dump("BEFORE GROUP!");
$this->getModule('WebDriver')->_reconfigure(['restart' => 
false]);
}
}

codeception.yml:

extensions:
enabled:
- CodeceptionExtensionRunFailed
- GroupPayForm

问题是,不管怎样,浏览器在每次测试中都会重新启动,而且我在每次测试的控制台中都会看到"BEFORE GROUP"。

为什么在每次测试中都执行_befor中的代码,而不是在一组测试之前执行一次?

还有其他方法可以阻止浏览器在测试之间重新启动吗?

为什么在每个测试中执行_befor中的代码,而不是在一组测试之前执行一次?

  1. 测试不按组排序
  2. _before钩子在每次测试之前执行,_beforeSuite钩子在套件之前执行。没有_beforeGroup挂钩-https://codeception.com/docs/06-ModulesAndHelpers#Hooks

是否有其他方法可以阻止浏览器仅在特定组中的测试之间重新启动?

把这些测试转移到另一个套件怎么样?

最新更新