regenerateId
of session is disabled.seeLink
and dontSeeLink
Codeception\Util\Stub
by @davertmik. See #3093 and #3080settings: backup_global
to config, to disable backup_global option of PHPUnit by @mkeasling. See #3045. Fixes #3044see
matches UTF-8 text case-insensitively by @Naktibalda. Fixes #3114--steps
will not disable code coverage. By @Naktibalda. Fixes #2620--quiet
by @EspadaV8. See #2370initializeLumen()
method has been called twice on start by @kt81. See #3124 #2607seeInDatabase
and dontSeeInDatabase
with empty criteria. Closes #3116leave()
method added to Friend class. See #3068handler
and middleware
config options to customize Guzzle handlers and middlewaresaveSessionSnapshot
with codecoverage. Closes #2923Util\Locator
added methods to create locators to match element at their position: elementAt
, firstElement
, lastElement
rebootable_client
that reboots client's kernel before each request.seeInField
for textarea with whitespaces before and after string. Closes #2921grabServiceFromContainer
use grabService
instead. For consistency with other frameworks.assert*
methods from PHPUnit addedexpectException
methodcodecept self-update
works with proxy by @gr1ev0uscodeception.yml
- settings: lint: false
scrollTo
action by @javigomez and @davertmik #2844clearQueue
for AmazonSQS by @mikitu #2805amHttpAuthenticated
allows null, null as parameters to unset authentication. #2896Util\Locator
added contains
method to easily locate any element containing a text.guard
parameters to seeAuthentication
and dontSeeAuthentication
methods. By @janhenkgerritsen. See #2876amLoggedAs
with an instance of Authenticable
. See #2795phantom
in WebDriver config in order to use PhantomJS-specific hooks.seeResponseJsonMatchesXpath
when JSON contains ampersand. By @Naktibalda.seeNumberNewLines
method to check the number of new lines in opened file. By @sergeyklayseeCurrentRouteMatches
action by @laszlo-karpati See #2665sqs
function to generate unique sequences per suite. #2766 by @johnatannvmdseeOptionIsSelected
sees first option as selected if none is selected by @NaktibaldaseeHttpHeader
and dontSeeHttpHeader
from null to expected value #2697 by @zondorstopFollowingRedirects
and startFollowingRedirects
by @brutuscatanimate_slides
config to disable left-right sliding animation between screenshots by @vml-rmottExternalUrlException
when a test tries to open a URL that is not handled by the framework, i.e. an external URL. See #2396ParseException
handles syntax error, otherwise linting happens with php -l
. @davertmikfilter_var($value, FILTER_VALIDATE_URL)
appendField
to work with content editable div by @nsanden #2588cache_router
added (disabled by default) by @raistlin.services
part added to allow access Symfony DIC while wokring with WebDriver or PhpBrowser by @laszlo-karpati See #2629_after
by @pfz. See #2572seeInField
for textareas by @nsandenenableMiddleware
and enableEvents
methods. See #2602. By @janhenkgerritsenseeCurrentRouteIs
when routes don't match. See #2593. By @maddhatter_getResponseContent
hidden method. By @NaktibaldamoveBack
method. By @NaktibaldaseeInSource
, dontSeeInSource
methods to check raw HTML instead of stripped text in see
/dontSee
. By @zbateson in #2465debugWebDriverLogs
in debug mode. Config option debug_log_entries
added. See #2471 By @MasonM and @DavertMik.json_last_error_msg
function on PHP 5.4. See #2535. By @NaktibaldaseeResponseIsJsonType
can now validate emails with string:email
definition. By @DavertMikseeResponseIsJsonType
: string|null
as well as null|string
can be used to match null type. #2522 #2500 By @vslovikdepends: Silex
in config. By @arduanov #2503expectEvents
and added seeEventTriggered
and dontSeeEventTriggered
. By @janhenkgerritsenseeCurrentRouteIs
and seeCurrentActionIs
methods. See #2517. By @janhenkgerritsenamOnRoute
and seeCurrentRouteIs
methods by @sergeyklayseeSessionHasValues
by @sergeyklaygetApplication()
method by @sergeyklayxdebug.max_nesting_level
to 200 only if it is lower. Fixes error hiding #2462 by @mhightowercleanup
flag. See #2488. By @ivokundgenerate:suite
respect bootstrap setting in #2512. By @dmitrivereshchaginseeResponseMatchesJsonType
and dontSeeResponseMatchesJsonType
. See #2391_request
and _loadPage
hidden API methods for performing arbitrary requests.seeInField
, dontSeeInField
for disabled fields #2378. See #2414.tests/_env
by @ZifiusamOnRoute
and seeCurrentRouteIs
methods by @raistlinamOnRoute
and seeCurrentRouteIs
methods module, by @NaktibaldaseeCurrentUrlEquals
and dontSeeCurrentUrlEquals
methods #2324. By @janhenkgerritsen_request()
method to send requests to backend from Helper classes.disableEvents()
, enableEvents()
and expectEvents()
methods. By @janhenkgerritsendontSeeFormErrors()
method. By @janhenkgerritsenCodeception\Exception\ExternalUrlException
when framework module tries to open an external URL #2328. By @NaktibaldaswitchToIframe
method. By @Naktibalda_before
. 2015-08-08disableMiddleware()
and enableMiddleware()
methods. By @janhenkgerritsen 2015-08-07tests/_support/_generated
directory, it will be created automatically before run.Extension\Recorder
navigate over slides with left and right arrow keys, do not create screenshots for comment steps.Extension\Recorder
generates index html for all saved records.Extension\Recorder
fixed for creating directories twice. Fixed #2216Extension\Logger
fixed #2216Stub::makeEmpty
on interfaces works again by @Naktibaldagenerate:scenarios
fixed for Cest files by @mkudenko See #1962http_proxy
and http_proxy_port
config options by @jdq22 2015-07-29haveRecord()
method in Laravel modules #2217 by @janhenkgerritsen 2015-07-28waitForElementChange
fatal error by @stipsanFacebook\WebDriver
namespace. Please take that into account when using WebDriver API directly.
Till 2.2 Codeception will keep non-namespaced aliases of WebDriver classes.test.before
and test.after
events. For instance, WebDriver browser won't be started and Db cleanups won't be executed on incomplete or skipped tests.skip
and incomplete
enabled in Cest files #2131_findElements($locator)
method added to use in Helper classes 2015-07-11
Now you can use $this->getModule('WebDriver')->findElements('.user');
in Helpers to match all elements with user
class using WebDriver moduleamOnUrl
method to open absolute URLs.fillField
using values that contain ampersands by @GawainLynch and @zbateson Issue #2132$scenario->skip()
, $scenario->group('firefox')
, etc, it is recommended to set scenario metadata with annotations // @skip
, // @group firefox
.
Annotations can be parsed from line or block comments. $scenario->skip()
and $scenario->incomplete()
are still valid and can be executed inside conditional statements:
if (!extension_loaded('xdebug')) $scenario->skip('Xdebug required')
tests/_support
by default. Actors, Helpers, PageObjects, StepObjects, GroupObjects to follow PSR-4 naming style. Autoloader implemented by @splinter89._inject
and explicitly specifying class names as parameters. Implemented by @splinter89._generated
namespace. Each *Tester class can be updated with custom methods.enabled
section of suite config._conflicts
method_inject
and _depends
methods and relying on dependency injection container.$scenario->current('env')
returns current environment name. Fixes #1251tests/_envs
, environment generator added. Implemented by By @sjableka. See #1747reconnect
option for long running tests, which will connect to database before the test and disconnect after. By @Naktibaldashuffle
added to settings. Randomizes order of running tests. See #1504symfony_em_service
config option moved from Doctrine2 to Symfony2 module and renamed to em_service
2015-06-03Codeception\Lib\InnerBrowser::getFormFromCrawler(): ID XXX already defined
2015-05-13MODULE_INIT
event is fired before initializing modules #1370pcntl_signal
. See #1286Codeception\GroupObject
ext
dir; Base Extension class renamed to Codeception\Extension
haveServiceInDi
method implemented by @sergeyklayseeNumRecords
method added by @sergeyklay