运行 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');
    }
}