运行 Codeception 套件完成后的自定义代码
Run custom code after Codeception suite has finished
我知道用于设置测试环境等的 _bootstrap.php 文件,但我正在寻找一种方法来 运行 在整个测试套件完成后的一些代码完成。
请注意,我不是在寻找在单个 class 之后 运行 编码的方法,即 _after
之类的东西,但毕竟是 class。
有办法实现吗?
实际上我自己设法解决了这个问题,如果有人感兴趣的话,这是方法。
我在 _support 中创建了一个新助手 class。
<?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
如果您想在所有套件中共享相同的方法, 特别有用。
如果您正在寻找一种方法来为特定套件定义方法(或者如果您希望每个套件使用不同的方法),您可以直接在套件助手中定义这些方法 class。
例如,如果您想为 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');
}
}
我知道用于设置测试环境等的 _bootstrap.php 文件,但我正在寻找一种方法来 运行 在整个测试套件完成后的一些代码完成。
请注意,我不是在寻找在单个 class 之后 运行 编码的方法,即 _after
之类的东西,但毕竟是 class。
有办法实现吗?
实际上我自己设法解决了这个问题,如果有人感兴趣的话,这是方法。
我在 _support 中创建了一个新助手 class。
<?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
如果您正在寻找一种方法来为特定套件定义方法(或者如果您希望每个套件使用不同的方法),您可以直接在套件助手中定义这些方法 class。
例如,如果您想为 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');
}
}