GitHub user filmaj opened a pull request:
https://github.com/apache/cordova-lib/pull/568
Reorganized unit test directory structure + updated npm task names
### What does this PR do?
This is a proof-of-concept pull request mainly introduction file
organizational changes. Please treat this PR as a discussion point, not as
something that needs to be mergeable right away. I wanted to get the feedback
of the community and PMC on this change before I went ahead with anything.
Ping @purplecabbage, @stevengill, @shazron, @mwbrooks, @devgeeks,
@surajpindoria, @imhotep, @dpogue, @kerrishotts, @matrosov-nikita, @goya,
@jcesarmobile, @macdonst, @infil00p. If I missed anyone, please pull them in
too ;)
The single biggest change, and takeaway, from this PR is that the unit
tests under `spec-cordova/` and `spec-plugman/` are consolidated into a single
top-level `spec/` directory. The idea behind this change (and hopefully future
to come changes) is that there will exist one unit test spec file per
javascript source file as a rough rule-of-thumb. Further, the test directory
structure should mirror, as closely as possible, the source directory
structure. I feel that that is an implied expectation when it comes to unit
test file structures. I think possibly one reason why so many integration tests
exist in this repository is that that structure right now is not honoured. So,
when contributions come in, the typical expectation of "I made a change in
src/foo.js, but I don't see a unit test file under spec/foo.spec.js" is broken,
and people feel they have to write integration tests to get the kind of test
coverage their contribution requires. Hopefully we can break that pattern here
an
d continue to march towards a healthier and faster test suite.
Other than the directory changes, a summary of smaller but also relevant
changes:
- consolidated the differing spec-plugman and spec-cordova jasmine
configuration files
- consolidated all the helper modules (there are three!?) under the
top-level `spec/` directory: `helper.js`, `helpers.js` and `common.js`.
Combining those into one test-helper file is left as an exercise for a future
pull request :)
- changed `package.json` `npm run` tasks to better reflect the purpose of
the task. In particular, changed `npm run jasmine` to `npm run unit-tests`. I
also thought of changing the `jshint` task to be `linter`, but then decided
against it. I am open to hearing opinions on this.
- related to the last point, now running `npm test` runs the integration
tests _as well_. They currently take around 400 seconds to run on my machine,
but without them right now we cannot guarantee we will have regressions. I am
hoping that as we rewrite more and more integration tests into smaller, faster,
more focussed unit tests, the integration test times will continue to drop.
- made some README changes to reflect the change in `npm` task names, and
also fixed the link to the issue tracker :)
### What testing has been done on this change?
`npm test`.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/filmaj/cordova-lib spec-consolidation
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cordova-lib/pull/568.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #568
commit bc4218e3d09682b0bdcd5a2a119e29c0561a03ea
Author: filmaj
Date: 2017-06-22T20:29:57Z
Reorganized unit test directory a little bit, consolidated into a single
spec/ dir. Put jasmine config and helper modules in top-level spec dir. Changed
package.json npm run scripts to reflect purposes of tasks. Updated readme to
reflect package.json npm run script changes.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---
-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org