Sounds sensible to me :)

Good job there!

Best
Jan
--

> On 13 Jan 2015, at 19:24 , Alexander Shorin <kxe...@gmail.com> wrote:
> 
> Hi everyone!
> 
> I would like to a bit change our tests layout. Currently, we have
> roughly the following picture:
> - couchdb: javascript-based integration tests
> - couchdb-couch: eunit both functional and integration tests
> - couchdb-couch-replicator: eunit both functional and integration tests
> - couchdb-mrview: eunit functional tests
> - ... well, everything else is mostly third-party projects clones or
> trivial cases that just works
> 
> The problem is that we keep test suites that starts full featured
> server with all the components from subproject. To be clear about what
> I'm talking take a look on any couchdb_* test suite for couchdb-couch
> project:
> https://github.com/apache/couchdb-couch/tree/master/test
> 
> I specially named them in this way to denote that they runs full
> CouchDB server for own needs. While this "just works", it makes
> impossible to test each component standalone, without dealing with the
> deps.
> 
> So I propose to:
> - Each subproject should have only test suite that his own
> functionality. If it accidentally triggers some external dependency,
> use meck and mock it.
> - In top level, couchdb, repository, keep the tests which needs to
> start whole CouchDB server instance with all the apps to run specific
> tests.
> 
> That will gives us:
> - Each subproject to be test-able standalone;
> - All integration tests will be in one single place. This is important
> since now we have 2 different httpd services which almost shares
> testing methods: CORS is need to be tested against both chttpd and
> httpd, vhosts is too, same is about proxying etc;
> - Test helpers will be clearly decoupled: we wouldn't have to keep the
> same helpers in each subproject to operate with server instance and we
> avoid heavy coupling subprojects by test suites.
> 
> Count this as a little, but step forward to reusable subprojects. I
> think we should have to provide couchdb-couch in this way to let
> people use CouchDB core as embed database in their Erlang apps (hi,
> cowdb! we're coming!).
> 
> Does everyone ok with such idea?
> 
> --
> ,,,^..^,,,

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to