22855 Posts in 9971 Topics by 2805 members
|Go to End|
20 November 2013 at 6:52am
I am trying to *finally* get my head into test driven development, but am repeatedly stumbling on an annoying hurdle.
Every time I try and run dev/tests/all it uses an obscene amount of RAM and never seems to finish. This happens when using the browser or sake.
At the moment I am trying to run the test suite using the option of pulling down unit testing libraries via composer, but have also tried setting up php unit via PEAR in the past and had similar results.
I am using a Sony VAIO E14:
Linux Mint 14
Apache 2.2 (possibly 2.3)
Not really sure where to go to diagnose this problem, anyone had a similar problem?
28 November 2013 at 10:58pm
Do you at least see a bit of progress? (dots going by..)
Tests/all will be very slow. Even on my SSD apple HD the full test suite on MySQL can take 5 minutes to run. For doing test driven development I recommend 2 things:
- Only work on one test case at a time. No point running tests/all. Either run a single test - dev/tests/MyApplicationTest or the tests for your module: dev/tests/module/mysite to run all your mysite tests.
- If you can, have sqlite3 installed for tests. If you're not doing SQL heavy work SQLite is much faster to bootup and is normally accurate for simple applications. Most devs will have a switch in _config.php which detects if sake + something like GET['sqlite'] exists and run tests like sake dev/test sqlite=1
29 November 2013 at 2:41am
Just to follow on from Willr - the main benefit of SQLite is that it can be run in memory and then is lightning fast. To import a database (on the slightly older versions) of sqlite you have to do a funny extended insert to prepare a database (see http://stackoverflow.com/questions/1609637/is-it-possible-to-insert-multiple-rows-at-a-time-in-an-sqlite-database - I could post my backup and restore functions if of use?)
also if you are starting out review behat (see http://vimeo.com/77432122 )
historically I've avoided phpunit and we have a homegrown testing suite - that is now being merged with behat solution due to the natural language approach.
30 November 2013 at 10:35am
There is a post over here http://deadlytechnology.com/silverstripe/sqlite-unit-testing/ that mentions putting a switch in your config file to turn on when running tests. Worth checking out.
27 February 2014 at 10:59pm
Many thanks for the responses, I will watch and read through everything and then see if I can finally get my head round unit testing .
|Go to Top|