You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _includes/extensions.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ extensions:
47
47
#### Configuration
48
48
49
49
* `delete_successful` (default: true) - delete records for successfully passed tests (log only failed and errored)
50
-
* `module` (default: WebDriver) - which module for screenshots to use. Module should implement `Codeception\Lib\Interfaces\ScreenshotSaver` interface. Currently only WebDriver or any its children can be used.
50
+
* `module` (default: WebDriver) - which module for screenshots to use. Module should implement `Codeception\Lib\Interfaces\ScreenshotSaver` interaface. Currently only WebDriver or any its children can be used.
Copy file name to clipboardExpand all lines: changelog.markdown
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,18 @@ title: Codeception Changelog
7
7
8
8
# Changelog
9
9
10
+
#### 2.1.8
11
+
12
+
*`Util\Locator` added methods to create locators to match element at their position: `elementAt`, `firstElement`, `lastElement`
13
+
* <strong>[Symfony]</strong> Refactor to unify service retrieval, avoid memleaks and reduce memory footprint. Closes <ahref="https://github.com/Codeception/Codeception/issues/2938">#2938</a> and <ahref="https://github.com/Codeception/Codeception/issues/2954">#2954</a>.
14
+
* <strong>[Symfony]</strong> New optoin `rebootable_client` that reboots client's kernel before each request.
15
+
* <strong>[WebDriver]</strong> fixed `seeInField` for textarea with whitespaces before and after string. Closes <ahref="https://github.com/Codeception/Codeception/issues/2921">#2921</a>
16
+
* <strong>[Symfony]</strong> Deprecated `grabServiceFromContainer` use `grabService` instead. For consistency with other frameworks.
17
+
* <strong>[Asserts]</strong> More `assert*` methods from PHPUnit added
Copy file name to clipboardExpand all lines: docs/02-GettingStarted.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ Let's take a look at Codeception's architecture. We assume that you already [ins
11
11
12
12
One of the main concepts of Codeception is representation of tests as actions of a person. We have a UnitTester, who executes functions and tests the code. We also have a FunctionalTester, a qualified tester, who tests the application as a whole, with knowledge of its internals. And an AcceptanceTester, a user that works with our application through an interface that we provide.
13
13
14
-
Actor classes are not written but generated from suite configuration. **Methods of actor classes are generally taken from Codeception Modules**. Each module provides predefined actions for different testing purposes, and they can be combined to fit the testing environment. Codeception tries to solve 90% of possible testing issues in its modules, so you don't have to reinvent the wheel. We think that you can spend more time on writing tests and less on writing support code to make those tests run. By default AcceptanceTester relies on PhpBrowser module, which is set in `tests/acceptance.suite.yml` configuration file:
14
+
Actor classes are not written but generated from suite configuration. **Methods of actor classes are generally taken from Codeception Modules**. Each module provides predefined actions for different testing purposes, and they can be combined to fit the testing environment. Codeception tries to solve 90% of possible testing issues in its modules, so you don't have reinvent the wheel. We think that you can spend more time on writing tests and less on writing support code to make those tests run. By default AcceptanceTester relies on PhpBrowser module, which is set in `tests/acceptance.suite.yml` configuration file:
15
15
16
16
{% highlight yaml %}
17
17
@@ -312,4 +312,4 @@ We took a look into the Codeception structure. Most of the things you need were
Copy file name to clipboardExpand all lines: docs/05-UnitTests.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -375,7 +375,7 @@ modules:
375
375
<divclass="alert alert-info">
376
376
It may look like Cest format is too simple for writing tests. It doesn't provide assertion methods,
377
377
methods to create mocks and stubs or even accessing the module with `getModule`, as we did in example above.
378
-
However Cest format is better at separating concerns. Test code does not interfere with support code, provided by `UnitTester` object. All additional actions you may need in your unit/integration tests you can implement in `Helper\Unit` class. This is the recommended approach, and allows keeping tests verbose and clean.
378
+
However Cest format is better at separating concerns. Test code does not interfere with support code, provided by `UnitTester` object. All additional actions you may need in your unit/integration tests you can implement in `Helper\Unit` class.
Copy file name to clipboardExpand all lines: docs/06-ReusingTestCode.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,7 +117,7 @@ However, implementing all actions for a reuse in one actor class may lead to bre
117
117
## StepObjects
118
118
119
119
If `login` method defined in Actor class may be used in 90% of your tests,
120
-
StepObjects are great if you need some common functionality for a group of tests. Let's say you are going to test and admin area of a site. Probably you won't need the same actions from admin area while testing the frontend, so it's a good idea to move those admin-specific into their own class. We will call such class a StepObject.
120
+
StepObjects are great if you need some common functionality for a group of tests. Let's say you are going to test an admin area of a site. Probably, you won't need the same actions from admin area while testing the frontend, so it's a good idea to move those admin-specific into their own class. We will call such class a StepObject.
121
121
122
122
Lets create an Admin StepObject with generator, by specifying test suite, and passing method expected names on prompt.
123
123
@@ -217,7 +217,7 @@ If you have complex interaction scenario you may use several step objects in one
217
217
## PageObjects
218
218
219
219
For acceptance and functional testing we will need not only to have common actions to be reused across different tests, we should have buttons, links, and form fields to be reused as well. For those cases we need to implement
220
-
[PageObject pattern](http://code.google.com/p/selenium/wiki/PageObjects), which is widely used by test automation engineers. The PageObject pattern represents a web page as a class and the DOM elements on that page as its properties, and some basic interactions as its methods.
220
+
[PageObject pattern](http://docs.seleniumhq.org/docs/06_test_design_considerations.jsp#page-object-design-pattern), which is widely used by test automation engineers. The PageObject pattern represents a web page as a class and the DOM elements on that page as its properties, and some basic interactions as its methods.
221
221
PageObjects are very important when you are developing a flexible architecture of your tests. Please do not hardcode complex CSS or XPath locators in your tests but rather move them into PageObject classes.
222
222
223
223
Codeception can generate a PageObject class for you with command:
Copy file name to clipboardExpand all lines: docs/modules/Symfony2.md
+64-4Lines changed: 64 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,8 @@ This module uses Symfony2 Crawler and HttpKernel to emulate requests and test re
29
29
* environment: 'local' - environment used for load kernel
30
30
* debug: true - turn on/off debug mode
31
31
* em_service: 'doctrine.orm.entity_manager' - use the stated EntityManager to pair with Doctrine Module.
32
-
* cache_router: 'false' - enable router caching between tests in order to [increase performance](http://lakion.com/blog/how-did-we-speed-up-sylius-behat-suite-with-blackfire)
32
+
* cache_router: 'false' - enable router caching between tests in order to [increase performance](http://lakion.com/blog/how-did-we-speed-up-sylius-behat-suite-with-blackfire)
33
+
* rebootable_client: 'true' - reboot client's kernel before each request
33
34
34
35
#### Example (`functional.suite.yml`) - Symfony 2.x Directory Structure
35
36
@@ -48,7 +49,8 @@ This module uses Symfony2 Crawler and HttpKernel to emulate requests and test re
48
49
* environment: 'local' - environment used for load kernel
49
50
* em_service: 'doctrine.orm.entity_manager' - use the stated EntityManager to pair with Doctrine Module.
50
51
* debug: true - turn on/off debug mode
51
-
* cache_router: 'false' - enable router caching between tests in order to [increase performance](http://lakion.com/blog/how-did-we-speed-up-sylius-behat-suite-with-blackfire)
52
+
* cache_router: 'false' - enable router caching between tests in order to [increase performance](http://lakion.com/blog/how-did-we-speed-up-sylius-behat-suite-with-blackfire)
53
+
* rebootable_client: 'true' - reboot client's kernel before each request
52
54
53
55
#### Example (`functional.suite.yml`) - Symfony 3 Directory Structure
54
56
@@ -64,11 +66,10 @@ This module uses Symfony2 Crawler and HttpKernel to emulate requests and test re
Remove service $serviceName from the lists of persistent services.
1500
+
1501
+
* `param string` $serviceName
1502
+
1443
1503
<p> </p><div class="alert alert-warning">Module reference is taken from the source code. <a href="https://github.com/Codeception/Codeception/tree/2.1/src/Codeception/Module/Symfony2.php">Help us to improve documentation. Edit module reference</a></div>
0 commit comments