Php 在codeception中包含通用测试用例
我有多个类似的网站,我想测试。以下是当前的方法:Php 在codeception中包含通用测试用例,php,codeception,Php,Codeception,我有多个类似的网站,我想测试。以下是当前的方法: 克隆现有的codeception项目 调整变量 如果需要,添加一些额外的特定测试用例 这很好,但有一个问题。如果通用测试用例发生变化,这意味着我必须进入每个项目并进行更改。所以我更愿意看到的是在每个项目中包含一个通用的顶级测试用例,并用一个参数调用它 我尝试用一个简单的include()语句来实现,但不幸的是,这不起作用。我如何才能做到这一点 下面是我最初尝试的一些代码: /home/tests/site1/tests/acceptance/is
include("../1generic_tests/isonline.php");
$I = new AcceptanceTester($scenario);
$I->am('user');
$I->wantTo('see the content of the site');
$I->lookForwardTo('see the homepage');
$I->amOnPage('/');
$I->see("Tech, Geek and Rock'n'Roll");
我包含的文件如下所示
$I = new AcceptanceTester($scenario);
$I->am('user');
$I->wantTo('see the content of the site');
$I->lookForwardTo('see the homepage');
$I->amOnPage('/');
$I->see('something else');
不幸的是,由于这个错误,它失败了
[PHPUnit_Framework_Exception] Undefined index: class
可能include不是正确的方法,但是有什么更好的方法呢?您可以使用页面对象来实现这一点 使用Page对象创建一个Constants.php文件,您可以在其中定义所有选择器 创建另一个文件,在其中可以执行所有常用操作。例如,Settings.php文件,您可以根据需要使用所有方法。您也可以使用参数来定义它 要访问page dir下声明的任何选择器和/或方法,可以使用以下行进行访问 使用Page\常量作为ConstantsPage 从任何特定文件访问任何选择器 文件名页面::$selectorName 要访问任何方法,请首先创建对象,然后调用该方法。 例如 $settings=新设置页面($I) $settings->methodName() 在同一文件中调用方法和/pr选择器 self::selectorName self::methodName()
希望这会有所帮助。请提供不起作用的代码,因为我们无法继续说明您当前的问题。添加了一些代码为什么不使用页面对象并在页面对象中声明函数。用参数调用它。你有一些示例代码吗?