jjzjj

Codeception

全部标签

php - Codeception多项测试,1个脚本

我想我的概念可能有误,或者没有正确思考某些事情。我正在寻找一种连接到数据库的方法,然后为表的每一行运行selenium测试(在phantomjs中)。该测试用于检查定制CMS上的损坏图像,并且可以应用于任何CMS。我基本上想通过从数据库加载它们的ID,然后为每个ID运行单独的测试来对每个页面(特定类型)运行验收测试。这是我目前所拥有的:$I=newWebGuy($scenario);$results=$I->getArrayFromDB('talkthrough','`key`',array());foreach($resultsas$r){$I->wantTo('Checkhelpf

php - 使用 PhpBrowser 的 Codeception 似乎不遵循重定向

这是我第一次设置测试套件,所以我可能会犯一些愚蠢的错误。我刚刚设置了Codeception来为CodeIgniter项目编写一些测试。我有一些简单的测试工作(耶!)但我现在正在编写验收测试以确保我的登录表单工作。填写表格并单击提交工作正常,但是当我在提交后尝试检查页面时,似乎没有遵循重定向。页面内容为空(节点列表为空,日志文件为0字节)页面的url是我提交的页面,而不是我应该重定向到的页面。重定向是301header重定向。编辑:FALSE事实证明,我使用的身份验证库执行“重新加载”header重定向。使用真正的301可以解决问题。我假设应该遵循重定向。是否需要设置/配置某些内容才能使

php - seeInField 找到元素,而 fillField 没有 - CodeCeption

我是CodeCeption的新手。我在正文中有以下html,在CodeCeption验收测试中,我有以下代码`wantTo('fillfieldtest');$I->amOnPage('/');$I->seeInField('#contentId',123);$I->fillField('#contentId',222397);?>`seeInField测试成功通过,但fillField抛出错误抱歉,我无法填写字段“#contentId”,222397InvalidArgumentException:当前节点列表为空这阻止了我继续前进。帮我解决这个问题。 最

php - 在 Codeception 中的测试之间保留数据库

我正在使用Codeception验收测试来测试用L5编写的CRUD应用程序。我想知道你们是怎么做到的。我最初认为我可以使用CEST并使用@depends属性来指定顺序,但似乎每次测试后都会运行自动数据库清理,所以在我插入下一次测试无法在数据库中找到该记录。有没有一种方法可以做到这一点,而无需专门制作专门用于测试的数据库转储?我希望能够按此顺序进行以下测试:创建项目阅读项目更新项目删除项目并在每个阶段检查数据库以确保其成功。如有任何帮助,我们将不胜感激。干杯,达里尔 最佳答案 此处指定的默认行为绝对是您想要的。您希望测试能够独立执行。

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

我知道用于设置测试环境等的_bootstrap.php文件,但我正在寻找一种在整个测试套件完成后运行一些代码的方法。请注意,我不是在寻找一种在单个类(class)之后运行代码的方法,即类似_after的方法,而是在所有类(class)之后。有什么办法可以实现吗? 最佳答案 实际上我自己设法解决了这个问题,如果有人感兴趣的话,这是方法。我在_support中创建了一个新的辅助类。然后您可以在任何套件配置(.yml文件)中将其作为模块启用,如下所示:modules:enabled:-DataHelper

php - Laravel 5 测试环境未在 Codeception 单元测试中设置

我正在使用Laravel5和Codeception,我想使用内存中的SQLite数据库进行单元测试,但是,我似乎无法在Codeception中将我的环境设置为“测试”。我正在使用Laravel5模块并在我的unit.suite.yml文件中定义了以下内容:class_name:UnitTestermodules:enabled:[Asserts,UnitHelper,Laravel5]config:Laravel5:environment_file:.env.testing我有一个定义所有本地设置的.env文件,然后是一个定义所有测试特定设置的.env.testing文件。但是,它似乎

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

我想在特定Cest中的所有测试之前运行一些东西,然后在所有测试运行之后清理它,类似于PHPUnit中的setUpBeforeClass和tearDownAfterClass方法。有没有在Codeception中做这样的事情的方法? 最佳答案 在Codeception的家伙给你可靠的方法之前,我现在有一个粗略的解决这个问题的方法。只需像这样在所有现有actor(测试用例)之上创建另一个Actor:classMyCest{function_before(AcceptanceTester$I){$I->amOnPage('/mypage.

php - 有没有办法控制 Codeception 中的测试顺序?

我刚开始使用Codeception在用普通PHPUnit编写单元测试多年之后。让我烦恼的一件事是,我找不到一种方法来控制调用测试的顺序。在纯旧的PHPUnit中,我像这样手动构建测试结构:$suite=newPHPUnit_Framework_TestSuite();$suite->addTest('MyFirstTest');$suite->addTest('MySecondTest');并且测试将按照它们被添加到套件中的顺序调用。另一方面,Codeception似乎在遍历目录并运行它能找到的每个测试。我希望能够在两个层面上控制测试的顺序:调用不同类型测试的顺序(即我想在验收测试之前

php - 如何从 codeception 和 phantomjs 测试中获取当前 url?

我正在用我的测试在estore中创建产品,并且需要在提交表单后获取url。是否有可能在提交按钮后获取url在测试范围内?$I->click('#formSubmit');$I->wait(5);//waitforredirecttonewurl$url=$I->someFunctionToGetCurrentUrl()`我正在从控制台而不是Web浏览器运行此测试,因此我无权访问服务器端的$_SERVER。但是如果我在codeception框架中有一些像$I->canSeeCurrentUrlEquals()这样的方法,那么我应该能够以某种方式访问​​当前的url...怎么做?

php - Codeception\Util\Stub 方法::exactly 和::once 不起作用

我正在使用Codeception\Util\Stub创建单元测试。而且我想确保我的方法调用了几次。为此,我使用“完全”方法。例子:use\UnitTester;use\Codeception\Util\StubasStubUtil;classsomeCest{publicfunctiontestMyTest(UnitTester$I){$stub=StubUtil::makeEmpty('myClass',['myMethod'=>StubUtil::exactly(2,function(){return'returnValue';})]);$stub->myMethod();}}如您