Module tests structure
Default Testing Library behavior is to run all tests which are defined in one of the following test classes and are based on PHPUnit.
AllTestsUnit
AllTestsIntegration
AllTestsSelenium
Tests are run by calling
vendor/bin/runtests
to run unit and integration tests and
vendor/bin/runtests-selenium
to run selenium tests.
These classes define default directories to store tests for a module:
Unit
Integration
Acceptance
Possible structure of module tests:
<module_id>/tests/Acceptance/testData/fileNeededToBeCopiedToShop
<module_id>/tests/Acceptance/testSql/demodata.sql
<module_id>/tests/Acceptance/testSql/demodata_PE_CE.sql
<module_id>/tests/Acceptance/testSql/demodata_EE.sql
<module_id>/tests/Acceptance/testSql/demodata_EE_mall.sql
<module_id>/tests/Acceptance/moduleAcceptanceTest.php
<module_id>/tests/Integration/moduleIntegrationTest.php
<module_id>/tests/Unit/moduleUnitTest.php
<module_id>/tests/additional.inc.php
<module_id>/tests/phpunit.xml
Possible example in PayPal GitHub repository.
Testing library and it’s documentation in GitHub.
We also have the possiblity to run shop acceptance tests based on codeception which is the recomended way to write acceptance tests for OXID eShop and modules. This will be explained in detail in the following sections.