gpt4 book ai didi

php - Codeception 在 CEST 内的所有测试之前运行

转载 作者:可可西里 更新时间:2023-11-01 12:36:05 27 4
gpt4 key购买 nike

我想在特定 Cest 中的所有测试之前运行一些东西,然后在所有测试运行之后清理它,类似于 PHPUnit 中的 setUpBeforeClass 和 tearDownAfterClass 方法。

有没有在 Codeception 中做这样的事情的方法?

最佳答案

在 Codeception 的家伙给你可靠的方法之前,我现在有一个粗略的解决这个问题的方法。

只需像这样在所有现有 actor(测试用例)之上创建另一个 Actor:

class MyCest
{

function _before(AcceptanceTester $I)
{
$I->amOnPage('/mypage.php');
}

public function _after(AcceptanceTester $I)
{

}

function beforeAllTests(AcceptanceTester $I,\Page\MyPage $myPage,\Helper\myHelper $helper){
//Do what you have to do here - runs only once before all below tests
//Do something with above arguments
}

public function myFirstTest(AcceptanceTester $I){
$I->see('Hello World');
}

function afterAllTests(){
//For something after all tests
}
}

您可以将函数 beforeAllTests 设为公共(public)但不 protected ,也不应以“_”开头,以便它在所有测试之前运行。

另一组函数在所有测试开始之前只运行一次,应该在/tests/_support/Helper/Acceptance.php 中实例化以进行验收等。在这里你可以调用函数:

// HOOK: used after configuration is loaded
public function _initialize()
{
}

// HOOK: before each suite
public function _beforeSuite($settings = array())
{
}

更多功能,请访问:https://codeception.com/docs/06-ModulesAndHelpers#Hooks

关于php - Codeception 在 CEST 内的所有测试之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com