Test::Aggregate versus Test::Class

Ovid on 2008-06-24T11:08:33

Still working on Test::Aggregate, but so far it works well. Currently we have tests which would normally take 13m25s running in 4m17s. I call that a win.

Regrettably, this might kill Test::Class adoption for us. Test::Class also runs the code in a single process, but the inherited tests push the test time up to an unacceptable level. This is disappointing to me as I would love to convert almost all of our tests over to Test::Class. It's one of the best test modules out there.


Why the time increase?

Adrian on 2008-06-24T11:16:48

but the inherited tests push the test time up to an unacceptable level

I'm curious - why are the inherited tests pushing the test times up? Is it just the OO overhead or am I doing something stupid and slow somewhere? ;-)

Re:Why the time increase?

Ovid on 2008-06-24T11:41:10

I'm being overly verbose in my answer not because I think you need this, but I assume that most people reading this have never used Test::Class.

It's not your fault at all. The vast majority of time for most test suites I work with is either I/O or the sheer number of tests. Since Test::Class inherits tests (as it should!), then when I run Test::Pips3::Report::Query::Validation::ExceptionsByPeriod, which naturally inherits from Test::Pips3::Report::Query::Validation, I get all non-overridden superclass tests run for my subclass. This is fantastic because it means I didn't accidentally break some functionality I forgot to test, but it's a huge explosion in my test count.

Re:Why the time increase?

Adrian on 2008-06-24T11:50:26

Hmmm... so it might be nice to (optionally) not inherit tests for a particular test run.... Added to the to do list :-)