We all know about the following steps :
Quickly add a test.
Run all tests and see the new one fail.
Make a little change.
Run all tests and see them all succeed.
Refactor to remove duplication.
*
How about these?
Quickly add a test.
Take a break or review the code.
IDE tells me that there is new test fail.
Make a little change.
Take a break or review the code.
IDE tells me all tests succeed.
Refactor to remove duplication.
]]>Take a drink of coffee and IDE tells me there is no broken test.
*
Fireworks is available for IDEA 5.0 and 6.0 now and some bugs are fixed.
http://plugins.intellij.net/plugin/?id=1106
While I love the idea of a continuous-testing plugin (albeit less so with the release of TeamCity), this one is just way too intrusive. The compile window pops up at random intervals, and may even be modal if you haven't set your project to always have background compilation. There are other usability issues as well, but that's the worst of them.
(Now that I think of it, there's something to disturbingly attractive about the idea of implementing continuous testing by having a local single-user version of TeamCity, and a background process which periodically sends off "Remote Run" requests to it. Since it would be purely local, you could ship it "headless", and run it in-proc as an IDEA plugin, completing the technology inversion.)
--Dave Griffith
As you said, I have the same idea with that always have background compilation and running tests. After some spike, I developed first version which would compile and run tests background by Ant. But the cost of compiling and running tests was too high, and it would break my development.
Then, I think it's impossible to work background locally without breaking development, so how about I just let it popup and show me the progress.
The key problem is when I trigger the task of running tests. The solution is too simple and does not work well now. I am working on finding out the time when developer isn't working on code and then trigger the task to run tests.
My idea of Fireworks came from the functional of saving file automatically in IntelliJ. When I am in development, I have to run test by myself continuously. If I am working on one TestCase, it's ok that I press "shieft-F10" to run test. But I always have to care about several TestCase in development(I have to write down to do task or just remember that before), and I always fret about finding the correct test and running it too.
It's very easy to find the test and run it in IntelliJ, but how about I don't need to do it, just like I never need to save file by myself in IntelliJ now.
So, it's a little different with idea about "Remote Run". "Remote Run" is an option for Fireworks to implement, but I think it is not better way now, because:
1. the feedback of build result will be too long time for development
2. the build environment will be different with running test in the IntelliJ. I hate that I have to run test out side of IDE which make me write more build script and delay the feedback from test.
Otherwise, this idea maybe works well, so I will try it when I have time.
There are two usability issues of running test in IntelliJ hurt me too. (I only can remember two now)
1. I have to open the Tool Window to know the test result even if I just want to know whether test is pass or not. So I make the icon of Firewoks Tool Window show the status.
2. I have to scroll content in the console to read the test failure trace log, because the console scroll to end of log automatically. So I make a test failure summary table for Fireworks.
So my point is making TDD more easy and simple in IntelliJ.
I released a new version that would power up usability. Fireworks will not trigger task of running tests, when:
code completion is working.
the document changed is not in source folders and test source folders.
there is a document has error marked.
developer is selecting a menu.
trigger again during 10 seconds.
Fireworks 1.07 has been released. Its usability of running tests automatically has been improved.
-
Version 1.07 changes
new feature: new configuration 'Enable auto run fireworks task'
new feature: new hot key 'shift alt A', enable/disable task of running recent test list automatically.
change: listen all of mouse event, any action of mouse will make Fireworks reschedule task of running tests.
power up: fireworks will cancel task of running recent test list when document in editor opened has errors, except:
document is not in source or test folder.
language of document is xml or dtd.
power up: fireworks will not cancel task of running recent test list, when:
text inputted is comment of Language or Java Doc
IntelliJ execute 'Run' action.
IntelliJ is waiting for typing in name of class/file which is developer want to find.
Version 1.06 changes
power up: fireworks will not trigger task of running tests when:
code completion is working.
the document changed is not in source folders and test source folders.
there is a document has error marked.
developer is selecting a menu.
trigger again during 10 seconds.
change: Fireworks will not trigger task of running tests twice when 'recent test list' is empty.
Message was edited by:
LiXiao