This module provides a patched version of Mage_Core enabling you to inject testing dependencies at run time. Due to the functionality of the Varien_Autoloader the local code pool is prioritised over the core. Meaning that any code duplicated from the Mage vendor namespace into the local code pool will be used over the core.
This allows you to build and run functional controller tests in the same way you would with a standard Zend Framework Application using Zend Test. This mocks the Request and Response objects to that you can query the Response within a suite of tests.
- PHPUnit 3.5+
- PHP 5.3+
The simplest way to install Mage-Test is to use magento-composer-installer. First, add Mage-Test to the list of dependencies inside your store's composer.json
, or create this file if it doesn't exist. You will also need to add some setup for magento-composer-installer, if you are not using it already. By convention this guide assumes this file exists at the root of your store's directory structure.
Inside your project's composer.json ensure your have at least the following contents.
{
"require-dev": {
"MageTest/Mage-Test": "*"
},
"repositories": [
{
"type": "composer",
"url": "http://packages.firegento.com"
}
],
"extra":{
"magento-root-dir": "./"
},
"config": {
"bin-dir": "shell"
},
"autoload": {
"psr-0": {
"": [
"app",
"app/code/local",
"app/code/community",
"app/code/core",
"lib"
]
}
},
"minimum-stability": "dev"
}
Now to install everything, simply let composer do its job.
$ composer install --dev
Afterwards your magento project's directory structure should look something like the following.
./
├── LICENSE.html
├── LICENSE.txt
├── LICENSE_AFL.txt
├── RELEASE_NOTES.txt
├── api.php
├── app
├── composer.json
├── composer.lock
├── cron.php
├── cron.sh
├── dev
├── downloader
├── errors
├── favicon.ico
├── get.php
├── includes
├── index.php
├── index.php.sample
├── install.php
├── js
├── lib
├── mage
├── media
├── php.ini.sample
├── pkginfo
├── shell
├── skin
├── tests
├── var
└── vendor
You can verify the installation by running Mage-Test's own bundled test suite.
$ phpunit -c vendor/MageTest/Mage-Test/tests/phpunit.xml.dist
You can read more about Composer on its official webpage. To find out more about Magento Composer Installer see its Github project page, or take a look at Vinai Kopp's MageBase Composer with Magento article.
Mage-Test comes bundled with a modman mapping file. To install with Modman, if you haven't already, run modman init
followed by modman clone https://github.com/MageTest/Mage-Test
Modman maintains a detailed wiki with a Modman tutorial and further information on its use.
If you have an idea of how to make this a better project or add functionality that would be of use the community then please submit a feature request. Create a new ticket and add the label of 'Feature'.
Developer IRC channel for MageTest is #magetest on Freenode.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Add tests for your new feature or bug fix.
- Add your Feature or Fix to satisfy the tests.
- Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request