在Codeception套件完成后运行自定义代码

时间:2015-05-14 16:37:25

标签: php codeception

我知道用于设置测试环境等的_bootstrap.php文件,但我正在寻找一种在整个测试套件完成后运行一些代码的方法。

请注意,我并未寻找在单个课程之后运行代码的方法,例如_after之类的课程,但是在所有课程之后。

有没有办法实现这个目标?

2 个答案:

答案 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');
    }
}