Gentlemen, great debate.  I will provide a bit more information a bit later as 
I don't want to answer without fully running thru all of the scenarios that 
everyone lays out.  Adam - thanks for pushing on this - it's needed it for a 
long time.

Cheers,
Tim
--
Tim Ruppert
HotWax Media
http://www.hotwaxmedia.com

o:801.649.6594
f:801.649.6595

----- "Adam Heath" <doo...@brainfood.com> wrote:

> David E Jones wrote:
> > *** First off Adam: it's great to see you working on this stuff,
> the
> > testing stuff in general needs a LOT more work and hasn't seen much
> > attention, so yeah... this is great.
> 
> Completely automatic tests with no side-effects is what I am striving
> for.  I believe we are close.
> 
> > On Mar 4, 2009, at 9:25 PM, Adam Heath wrote:
> > 
> >>>> The service engine tests define several different test cases. 
> The
> >>>> second test case does a data load.  Then each subsequent test
> modifies
> >>>> the data state of the previous test.  They all have to run in
> >>>> sequence, for them to pass.
> >>>>
> >>>> This means that they are *not* separate test cases, but a single
> test
> >>>> case.  A test case is supposed to be self-contained, not
> depending on
> >>>> the state of anything else.  It's supposed to start from empty,
> do
> >>>> whatever mutative changes it needs to, without any external
> >>>> dependencies.
> >>>
> >>> Who says?
> >>>
> >>> Why?
> >>>
> >>> The change you made doesn't change this, it just creates something
> new
> >>> called a "test group" that I'm guessing is supposed to group
> tests
> >>> together than depend on eachother. However, it doesn't make the
> test
> >>> cases independent.
> >>>
> >>> Also, why introduce a test group concept when we already have the
> >>> test-suite concept? Why not just use that? Run one suite at a time
> and
> >>> only allow dependencies within that suite.
> >>
> >> Well, TestRunContainer supports running a singly-defined test case
> >> from some testdef.xml file.  If done against service tests, then
> >> you'll get false positives.
> >>
> >> I'm fine with not having this <test-group>, so long as we don't
> allow
> >> for running separate tests, that TestRunContainer currently
> allows.
> >>
> >> Currently, we can run all tests suites inside a component, or one
> >> separate test in a component, in whatever test suite it resides
> in.
> >> We have no way to restrict the lookup code to just a single test
> suite.
> > 
> > What does all of this have to do with it?
> > 
> > Are you just saying that we need a way to run one test suite at a
> time?
> > If we're going to move toward the practice of having dependencies
> only
> > within a single test suite, then yes, I'd agree this is necessary.
> > 
> > At the minute the practice is to allow dependencies within a
> component.
> > 
> >>> Still, this hasn't been discussed. The only thing we've discussed
> and
> >>> somewhat decided on so far (including the ApacheCon discussions I
> was
> >>> involved in, which was the same as what was discussed before) is
> to only
> >>> allow dependencies between test cases within components.
> >>
> >> Well, in some cases, multiple tests defined inside some
> test-suite.xml
> >> can *not* run in series, or in parallel.  Each defined test case
> needs
> >> a *clean* database.  In other cases, the test cases inside the
> >> test-suite.xml *do* require running each in series.
> > 
> > Oh yeah? Where?
> > 
> > Here's the scary thing that I'm starting to believe to be the case:
> > because you didn't read and research before starting to change
> things
> > you didn't try running the tests for a component all at once. You
> made
> > incorrect assumptions about how they were written and how they were
> > meant to be run.
> 
> But I did do some.
> 
> The service tests require running everything in the test suite.  That
> I am absolutely certain of.
> 
> The other thing we know, is that running some tests together causes
> problems.  I'm not entirely certain if these same bad tests together
> exist in a single test suite, or if different test suites conflict.
> 
> > Your rants and complaints about the tests may be incorrect, and the
> > "fixes" you've been making for them may be unnecessary. They are
> only
> > true if you adopt your assertion that all test cases should be
> > independent. Otherwise, they are not true and you're heading down a
> road
> > that others may not appreciate.
> > 
> > Could we maybe step back and talk about this before you cruise along
> too
> > much more?
> 
> I still stand by the <test-group> addition; it's a new feature, that
> seems usefull.  It allows combining separately defined test cases
> into
> a single whole, without giving them each a separate name.  It allows
> for code reuse, without having to write some java code, or a
> simple-method, to combine them.
> 
> However, what we are heading towards is making the granularity be a
> test suite.  In that case, the service test definition should be
> changed back, as well as changing my recent build.xml and
> TestListContainer policy.
> 
> Just to restate, I will change the policy to be each suite gets run
> separately.

Reply via email to