Design Centers - Goals
- reality based
- real webapp handling real URIs
- tests only use a real URI vs. Java API, stubs, embedded, etc.
- == (as possible) to production
- tests are scenario based, e.g. user does this/that in this/that order
- initial focus is on testing correctness
- minimal # of steps, Articles/etc. needed
- put off Javascript, for now, no rat-holing
- allows full testing of webapp post-POST
- tests used by
- continuous build (reports, pass/fail, code coverage)
- locally by developers
- arbitrary instance of webapp, e.g. branch/stage/production
- cross platform
- mvn this/that driven
- cross-platform, etc.
- minimal rat-holing
- evolve into performance tests still scenario based, e.g. certain % of users
- anonymous targeted URIs, search, annotate, etc.
Impl
Use Canoo Webtest w/Groovy Testing. (focus is on writing tests.)
Environment
- Install components
- mvn ant-tasks:ecqs-install ant-tasks:mulgara-install ant-tasks:fedora-install ant-tasks:search-install
- Deploy components
- mvn ant-tasks:ecqs-start fedora-start mulgara-start search-start
- jetty:run * 2 w/different props for different ports, configs
All installation is confined to a user defined/owned directory. No need for /etc. All runtime inputs/outputs confined to said user defined/owned directory.
Create common file directory structure, e.g. logs, spool, etc. ala single box install, under ${topazproject.install.dir} and config all start goals to use common values.
Fully config all start goals to have/use appropriate development log4j.xml, etc.
Tests
- calls single groovy entry point which explicitly calls scenarios in order
- bootstrap server data from ground zero
- create users w/webapp tests
- ingest Articles w/webapp tests
- create Volumes/Issues w/webapp tests
Known Issues
- can ${component}-start mvn goals be detached or started in background?
- CAS: missing cas.xml, doesn't respect property overrides on mvn cmd line