我知道用于设置测试环境等的_bootstrap.php文件,但是我正在寻找一种在整个测试套件完成后运行一些代码的方法.
请注意,我并不是在寻找一种在单个类之后运行代码的方法,例如_after
,但是在所有类之后.
有没有办法实现这个目标?
实际上我自己设法解决了这个问题,如果有人感兴趣的话,这是怎么回事.
我在_support中创建了一个新的帮助器类.
<?php
class DataHelper extends \Codeception\Module
{
public function _beforeSuite()
{
// Set up before test suite
}
public function _afterSuite()
{
// Tear down after test suite
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以在任何套件配置(.yml文件)中将其作为模块启用,如下所示:
modules:
enabled:
- DataHelper
Run Code Online (Sandbox Code Playgroud)
如果你想在所有套房中分享相同的方法,@ Sacha的解决方案特别有用.
如果您正在寻找一种方法来定义特定套件的方法(或者如果您希望每个套件使用不同的方法),则可以直接在Helper类套件中定义这些方法.
例如,如果要_afterSuite
为Acceptance Suite 定义方法,只需转到support/AcceptanceHelper.php
并定义那些方法即可.例如:
<?php
namespace Codeception\Module;
// here you can define custom actions
// all public methods declared in helper class will be available in $I
class AcceptanceHelper extends \Codeception\Module
{
public function _afterSuite() {
die('everything done');
}
}
Run Code Online (Sandbox Code Playgroud)