Really Running the Tests, alternating Red/GreenNot batching
Unit tests are FastGood tooling supportWork without spinningup Grails.
Continuous Testing Idea Started @MIT, 2004in backgroundreduce time & effort to runReduce Change size if a problem is foundSame as Continuous Compilation for dev, or CI for an organisation.Work by watching .class files on disk. Save->Compile->Tests Run
Concept: Ignorance time: How long something broken, that you did not know about.Fix Time is correlated with Ignorance time. Same as continuous integration!
Issues: Run tests in different environment than coding environment. Alt-Tab to run tests, get results.
GoodColor Less Verbose Same JVMPeek @ResultsBad:- Still separate environment
InfiniTest was briefly commercialAuto-test is Grails only, no IDE integrations.JUnitMax – status?
Good:Fairly dumb heuristicsBad: Separate environment.
Demo-------Prefs/EnableRebuild project – tests run when classes change.Change AnotherClass.*Smart* about what to run… sometimes misses things.Open source – feel free to add fixes!Shows errs for all open projects.Won't run if compilation errs in any open projects.
• A controlled experiment has shown that continuous testing has a statistically significant effect on developer success in completing a programming task, without affecting time worked. Developers using continuous testing were three times more likely to complete the task before the deadline than those without.• Most participants found continuous testing to be useful and believed that it helped them write better code faster, and 90% would recommend the tool to others
Continuous Testing Options• InfiniTest – http://infinitest.github.com/ – For IDEA or Eclipse – groups.google.com/group/infinitest-users• Auto-test – http://grails.org/plugin/auto-test• JUnitMax from Kent Beck – $100 – Health? Not tried
Auto-testThe plugin will monitor the project directory and will attempt torun only the subset of tests affected by what changed. This isvery rudimentary - for example, if you modify BookControlleror BookControllerTests or BookControllerSpec, it will run test-app BookController