我的目标是在属于某个组的每个测试之前阻止浏览器重新启动。我有一个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中的代码,而不是在一组测试之前执行一次?
- 测试不按组排序
_before
钩子在每次测试之前执行,_beforeSuite
钩子在套件之前执行。没有_beforeGroup
挂钩-https://codeception.com/docs/06-ModulesAndHelpers#Hooks
是否有其他方法可以阻止浏览器仅在特定组中的测试之间重新启动?
把这些测试转移到另一个套件怎么样?