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? > > -- > ,,,^..^,,,
signature.asc
Description: Message signed with OpenPGP using GPGMail