regenerateId of session is disabled.seeLink and dontSeeLinkCodeception\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, lastElementrebootable_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: falsescrollTo 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\GroupObjectext dir; Base Extension class renamed to Codeception\ExtensionhaveServiceInDi method implemented by @sergeyklayseeNumRecords method added by @sergeyklay