I would suggest perhaps a simpler approach, which doesn't add anything new
to cordova-cli/plugman:

- Each plugin ships with a "tests" js-module, and we document a convention
of where they should live, and what signature it should have (i.e.,
cordova.require('plugin.name.Tests').forEach(...) ).
  - Will need a common way to describe/report results (others have
mentioned TAP).
- Any app is free to run those plugin tests in any which way, but we ship a
mobile-spec app which is one opinionated way to do so.
  - It attempts to require the test module for each installed plugin, runs
them, and aggregates results.
  - It could report results to some shared server, allow toggling of tests,
etc, but no plugin should know or care about those features.

Using that as a generic base:

- We ship a "CDVTests" (or whatever) plugin which has a bunch of library
code for creating tests, and plugins can use it to register their tests.
- This makes it easier to register manual tests in a common format for core
plugins, and prevents code duplication for core auto tests.
- External plugins can chose to use our testing library, or not.

-Michal


On Thu, Sep 26, 2013 at 10:34 AM, Braden Shepherdson <bra...@chromium.org>wrote:

> Here's an off-the-top-of-my-head sketch of how we might do Voltron tests:
>
> - Add a tag to plugin.xml that names each test file:
>     <test type="automatic" src="spec/foo.js" name="Foo Automated" />
>     <test type="manual" src="spec/bar.js" name="Foo Manual" />
> - Add a new command, cordova test (maybe prepare-test), that:
>     - Ignores the top-level www.
>     - Instead copies in a basic testing index.html similar to the current
> mobile-spec's
>     - That index reads a file akin to cordova_plugins.js (cordova_tests.js,
> maybe?) generated by the CLI, containing the info from the <test> tags.
>     - It has navigation similar to the current mobile-spec, with buttons
> for the automatic and manual sections. Auto has "All" and then each module,
> manual just has the list of modules.
>
> Thoughts?
>
> Braden
>
>
> On Thu, Sep 26, 2013 at 6:33 AM, Carlos Santana <csantan...@gmail.com
> >wrote:
>
> > I like the idea can we call mobilespec now cordova-voltron and be DRY and
> > use the tests form the plugins.
> >
> > Voltron by itself creates an App that tests only core, but as you
> > use plugman to add plugins to voltron it has more test cases.
> >
> > It would not be a bad idea to enhance plugin.xml in the future to include
> > information about testing (i.e. Directory containing tests files, test
> > command, etc..)
> >
> > --Carlos
> >
> > On Thursday, September 26, 2013, Anis KADRI wrote:
> >
> > > What's the challenge of having us use the tests that come with the
> > > individual plugins ?
> > >
> > > On Thu, Sep 26, 2013 at 8:13 AM, David Kemp <drk...@google.com
> > <javascript:;>>
> > > wrote:
> > > > Currently, the automated test system that we have running (derived
> from
> > > > Medic) uses only the mobilespec tests. It does not yet use tests
> > > collected
> > > > from the plugins. Its been talked about, but not gone anywhere.
> > > >
> > > > David Kemp
> > > >
> > > >
> > > > On Wed, Sep 25, 2013 at 7:58 PM, Jesse <purplecabb...@gmail.com
> > <javascript:;>>
> > > wrote:
> > > >
> > > >> Yeah, I have pushed some changes to mobile-spec, and when I did I
> also
> > > >> copied the tests into the plugin involved.
> > > >> Until we get the magic test runner happening, I think we just keep
> > > >> duplicating.
> > > >>
> > > >> @purplecabbage
> > > >> risingj.com
> > > >>
> > > >>
> > > >> On Wed, Sep 25, 2013 at 4:38 PM, Steven Gill <
> stevengil...@gmail.com
> > <javascript:;>
> > > >
> > > >> wrote:
> > > >>
> > > >> > We copied over tests into plugins when we first broke them out,
> but
> > I
> > > >> don't
> > > >> > believe they have been updated.
> > > >> >
> > > >> > I would say for now to just add the tests to mobile spec, and
> > > possibly in
> > > >> > the future we go all voltron to build mobile spec and keep tests
> > with
> > > >> their
> > > >> > corresponding plugins.
> > > >> >
> > > >> >
> > > >> > On Wed, Sep 25, 2013 at 4:22 PM, Joe Bowser <bows...@gmail.com
> > <javascript:;>>
> > > wrote:
> > > >> >
> > > >> > > Hey
> > > >> > >
> > > >> > > Right now, I'm working on a weird file issue that requires me to
> > > >> > > update mobile-spec, but I'm wondering where the tests should
> live.
> > > >> > > Should it all keep living in mobile-spec, or is it with the
> > plugins.
> > > >> > > And if it's with the plugins, will there be scripts to assemble
> > > >> > > mobile-spec all Voltron style?
> > > >> > >
> > > >> > > This came up earlier, but I haven't found any fix that needed a
> > > >> > > mobile-spec test.  (Many that need native testing, like
> recursive
> > > file
> > > >> > > copy, etc).  Any thoughts?
> > > >> > >
> > > >> > > Joe
> > > >> > >
> > > >> >
> > > >>
> > >
> >
> >
> > --
> > Carlos Santana
> > <csantan...@gmail.com>
> >
>

Reply via email to