我知道用于设置测试环境等的_bootstrap.php文件,但我正在寻找一种在整个测试套件完成后运行一些代码的方法。
请注意,我并未寻找在单个课程之后运行代码的方法,例如_after
之类的课程,但是在所有课程之后。
有没有办法实现这个目标?
答案 0 :(得分:6)
实际上我自己设法解决了这个问题,如果有人对此感兴趣的话。
我在_support中创建了一个新的帮助器类。
<?php
class DataHelper extends \Codeception\Module
{
public function _beforeSuite()
{
// Set up before test suite
}
public function _afterSuite()
{
// Tear down after test suite
}
}
然后,您可以在任何套件配置(.yml文件)中将其作为模块启用,如下所示:
modules:
enabled:
- DataHelper
答案 1 :(得分:5)
@Sacha's solution特别有用。
如果您正在寻找一种方法来定义特定套件的方法(或者如果您希望每个套件使用不同的方法),则可以直接在Helper类套件中定义这些方法。
例如,如果您要为Acceptance Suite定义_afterSuite
方法,只需转到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');
}
}