Hi Kevin,
what I do is to import the entire framework/trunk tree into Eclipse, and
this tree *would* include the various TCK modules.
As things are right now in the SVN repo, the TCK modules are all in a
single directory. The reason I want to break it up is that -
realistically - not every component is likely to use the TCK for a
while. Having the TCK together might imply to the casual browser that
there is TCK coverage when there isn't any.
Let me complete the commit to what I was proposing, and we can see how
it feels.
Cheers
Dan
PS: or, as an alternative, maybe we should simply delete those TCK
modules for viewers that don't have any automated tests.
On 20/07/2011 09:31, Kevin Meyer wrote:
Hi Dan,
I sense the usual problem of a linear file system interfering with
a desire to store something that conceptually belongs in two places!
;)
I think this could work, but perhaps I would prefer if the TCK
application be internally complete, i.e. in Eclipse I can import 1
project that includes *all* TCK modules (I'm thinking about project
maintenance refactoring). Leaving links (either symbolic or via
svn:externals) doesn't quite solve this issue...
If we communicate well enough (and include a reference to the TCK master
project in the module , e.g. objectstore, documentation) we can
manually/intellectually be aware that each module has a tie-in to the
TCK application.
My 2c.
But otherwise, yes, this is a good idea.
Regards,
Kevin
On Wed, July 20, 2011 09:41, Dan Haywood wrote:
Hi all,
Just a heads-up.
For the new JSON viewer (and for other viewers in the future) I want to
have proper automated end-to-end tests (rather than simple unit tests).
So I've hit on the idea of there being a standard "TCK" domain
application (TCK = technology compatibility kit, ie for testing that new
components such as viewers or object stores are compatible with/provided
the same capabilities as existing viewers/object stores).
Anyway... what this post is here is how to I intend to structure this
TCK domain app.
What I've done is use the archetype to generate a domain app; this
generates multiple modules. What I propose is that the "core" of the
app (dom, fixtures and objectstore-dflt repository impls) go into an
org.apache.isis.tck package (under trunk/framework/tck), but then the
modules for the various viewers (dnd, html, wicket, scimpi, json, xhtml,
bdd, junit) are moved out alongside the implementations to be maintained
there). Then - on a case by case/component by component basis - we can
write end-to-end tests for this component and with respect to the
standard TCK app.
That is, in trunk/framework there will be:
tck/
dom/
fixture/
objectstore-dflt/
viewers/
dnd
dnd-tck # for end-to-end tests of the DnD viewer against the TCK
app (original code corresponds to the 'quickrun' module generated by the
archetype)
html
html-tck # for end-to-end tests of the HTML viewer against the TCK
app (original code corresponds to the 'viewer-html' generated by the
archetype)
json
json/tck # for end-to-end tests of the JSON viewer against the TCK
app (original code corresponds to the 'viewer-json' generated by the
archetype)
scimpi
scimpi/tck # etc
bdd/concordion
bdd/concordion-tck # etc
wicket/viewer
wicket/viewer-tck # etc
junit
junit-tck # etc
xhtml
xhtml/tck # etc
You get the idea.
Since this is new code, I don't think it'll impact anyone; but I wanted
to describe here what these new modules are all about.
Reply here if you have any views/modifications/improvements to this
scheme.