+1

A worthwhile endeavor in the spirit of 'convention over configuration'
so long as there are hooks to change the configuration in the rare
cases too.

Some things to consider:
- Would we permit subdirectories under tests, environment, definitions etc?
 (I think we would have to)
- Will the structure make it easy to work with Eclipse/IntelliJ? (I have
 always found it hard to use WTP to do XML validation and also have
 relative paths to DTDs (e.g. ../dtds/webtest.dtd) and entity declarations etc.)
- definitions.xml -> definitions?
- BC issue: will a fixed structure make life a nightmare for existing users?
- Is there a reason for macro declaration to be through entities and not
 just imported directly?
- I am a big Groovy fan but we should support JRuby and JavaScript etc
 scripts too
- We need to make it easy for reports to be somewhere else (it is the
 only directory not part of the source tree)
- We should think a bit about data-driven tests (would all that belong
 in environment?) Maybe we could support 'data' too eventually.

I would be happy to help flesh out and trial something.

Cheers, Paul.

Marc Guillemot wrote:
Hi all,

we've already mentionned the necessity to make WebTest projects easier to
start. One element could be to propose a standard directory structure. For
this purpose, it would be good to find something on which we have a
consensus. Dierk, Tomi and myself have following structure to propose for
discussion:

- dtds
  - project.dtd (1)
  - project-entities.dtd (generated)  (2)
  - webtest.dtd (generated) (3)
- definitions (4)
- environment (5)
- includes (6)
- reports (generated) (7)
- tests (8)
- build.xml (9)
- definitions.xml (generated) (10)

with:
(1) dtds/project.dtd
the dtd that has to be referenced by the tests. Contains reference to
project-entities.dtd and webtest.dtd and allows to add manually other
entities

(2) dtds/project-entities.dtd
declare entities for all *.xml files from the includes directory.
Automatically generated.

(3) dtds/webtest.dtd
the dtd for all tasks and macros available after tasks and macros
definition. Automatically generated by AntStructure

(4) definitions
the directory where macro definitions and project specific tasks (as Groovy
scripts) can be placed as xml snippets

(5) environment
the directory where properties for server, user, ... settings should be
placed

(6) includes
the directory where xml snippets can be placed that will be automatically
made available as entities through the dtd

(7) reports
the directory where the reports are generated

(8) tests
the directory where the real tests are located

(9) build.xml
the main entry point. Imports a webtest.xml from WebTest's home and just
needs to override the wanted targets (if any).

(10) definitions.xml
contains all macro declaration (through entities) and is imported before
tests execution to make the macros available


Comments are welcome.

Marc.

_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to