Hi,

it is my experience that no matter how focused and fast each single test is, at some point running all of them will take too long if you build often. I agree totally with Jeffrey that it is important to make fast running focused test, but when you reach that limit when you feel you wait too long for the unit tests to run - I know I have a long time ago - it's time to make focused test suites for what you are working on right now (and include tests you feel are likley to break). For this to work in practise it is important that somebody else runs all the tests all the time and notify you if you have broken something lately. In our house, Bob does this (as in Bob the Builder). He runs Cruise Control and notifies us if we have broken something we did not antispate. We all feel that this is a good way to go about building and testing, but I'm sure there are people out there who would feel differently.

As for making a focused test suite in maven (I do this in my IDE), I would try making your own goal in maven.xml running only a few tests at a time.

This is just my opinion, though. I would love to hear how other people use maven to build, and run tests!

Best regards,
Bent André




On Tue, 10 Aug 2004 19:54:57 -0500, Jeffrey D. Brekke <[EMAIL PROTECTED]> wrote:


On Tue, 10 Aug 2004 22:40:13 +0100, Charles Daniels <[EMAIL PROTECTED]> said:

I recommend you forget that the flag exists and make the tests
faster.

That doesn't necessarily help.  If all of his tests take 0.1 second
on average, but he has 1000 tests, it still takes 100 seconds to run
them all, which may still be unacceptably long to wait when running
frequently.

Then they would still be too slow I guess. There are projects with many more than 1000 tests that run in a reasonable time ( http://jakarta.apache.org/commons/collections/junit-report.html ). Everyone has a threshold wrt build times.

Maven runs the tests on each build because that is a best practice in
our industry.  They should be fast and focused tests, otherwise maybe
the build should not be dependant upon them ( the slow ones that is, in
which case you could move them into a separate testing project ).

In my experience, slow running tests usually have external
dependencies ( files, database, network ) which slow them down.  I try
to have unit/programmer tests not depend on anything external.  Those
tests ( that depend on external systems ) are important, and should
exist.  But having the build depend on them may not be wise.

This has been discussed on this list before, sorry if I came off too
harsh, I was really trying to help.

 >>>>> On Tue, 10 Aug 2004 13:49:06 +0100, Kenny MacLeod
<[EMAIL PROTECTED]> said:

> Folks, I currently have a project where the unit tests take a >
considerable amount of time to run (5 minutes or so), and as a >
result, running them every time I do a build is proving
impractical.  > Initially, I just added the maven.test.skip flag to
my > project.properties, but this isn't a good solution, mainly
because > if I explicitly want to run the unit tests, I have to
take the flag > out again.

> What I want is for the unit tests not to be run when i do a
build, > but I do want them to run if I explicitly say so.  The
interactions > between the Java and Test plugins don't seem to be
flexible enough > to allow this.

> My current solution is to move the unit tests out to a seperate >
project, but that seems like an arse-backwards way of going about >
it.  Can anyone suggest a better approach?

I think you may be onto something here.  If they are so long, maybe
they aren't unit tests and should be moved.




-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to