Sorry!  Forgot to include the list!

T

---------- Forwarded message ----------
From: Tony Atkins <t...@raisingthefloor.org>
Date: 14 March 2018 at 11:35
Subject: Re: [Architecture] Another Glorious Merge
To: Steven Githens <swgit...@mtu.edu>


Hi, Steve.

For the benefit of others, I'm going to interpret your question somewhat
broadly and give some examples for a range of scenarios.

If you only have node components, you just use nyc (possibly with an .nycrc
configuration file), and let it handle instrumentation and reporting.  For
anything that isn't a monorepo, it usually does "just work".

If you only have browser components, you use the gpii.testem grade provided
by the gpii-testem package, which handles both instrumentation and
reporting.  If you haven't used gpii-testem but are familiar with Testem in
general, you'd need to create a testem.js file to replace your previous
testem.json <https://github.com/GPII/gpii-testem#usage-instructions>,
and include
the coverage client in your client-side includes
<https://github.com/GPII/gpii-testem/blob/master/docs/coverage.md>.  If
you've used gpii-testem before, recent versions have small breaking
changes, mostly around using a different syntax to represent the
instrumentation config, and using different grades when you just want to
collect coverage data but don't want to generate a report after the Testem
run, as is the case when you want a "combined" coverage report across
browsers and node.

If you have both node and browser tests, it's a bit more involved.  In
short, you clean up before running all tests, run each set of tests without
generating individual reports, and then generate a report after.  My
approach to date uses only npm scripts, and is covered in more detail in
this guide:

https://github.com/GPII/gpii-testem/blob/master/docs/advanced.md

The recent work on universal gives one example of preparing a combined
coverage report.  I would urge everyone not to start with that .nycrc
config file, which bends over backwards to work with a monorepo that
doesn't match nyc's lerna-ish assumptions
<https://github.com/istanbuljs/istanbuljs/issues/146>.   Most of our work
in non-monorepos should be able to get away without an .nycrc config file,
or with a much much simpler one like we use in infusion
<https://github.com/fluid-project/infusion/blob/master/.nycrc>.

Anyway, do please check out the gpii-testem docs, et cetera and hit me up
if there are any problems or questions.  I am always happy to help.

Cheers,


Tony

On 13 March 2018 at 18:56, Steven Githens <swgit...@mtu.edu> wrote:

> That's awesome, thanks Tony and Antranig.
>
> So, if I want to add test coverage to my XYZed GPII module I would just
> include gpii-test and nyc in my dev dependences, add that .nycrc file,  and
> then mimic these lines in my package.json, then my project will get full
> test coverage?
>
> https://github.com/GPII/universal/blob/master/package.json#L72-L80
>
> Cheers to the Max,
> Steve
>
> On Mar 12, 2018, at 12:16 PM, Antranig Basman <
> antranig.bas...@colorado.edu> wrote:
>
> Dear All -
>  This is to report another important milestone in improving our quality
> infrastructure. This evening another significant branch has been merged,
> itself representing more than 6 months work by Tony Atkins but building on
> yet more work implementing similar capabilities for Infusion and captured
> in other projects in our ecosystem, including gpii-testem. As a result of
> this, we will now have complete code coverage information pooled between
> our web-based and node-based unit tests and integration tests, which will
> greatly improve the efficiency of future code review.
>
> The code coverage reports can be browsed within the "reports" directory
> created after a standard (successful) run of the "npm test" task. We should
> be aiming to reach a baseline quality target of around 90% branch coverage,
> which across most of our implementation we do already. Once we reach this
> uniformly, we should consider how further engineering cycles should best be
> spent.
>
> Similar capabilities will now be rolled out across our other GPII
> projects, and also we will probably try to enroll in some form of coverage
> dashboard so that this can be checked in an automated way as part of our CI.
>
> Could everyone who has outstanding pull requests against universal please
> merge them up against current master, and if your work has contributed any
> further implementation files you will need to explicitly list them against
> the peculiar patterns found in the .nycrc file listed here (bug has been
> filed in the upstream "istanbul" project which will hopefully make this
> unnecessary one day):
>
> https://github.com/GPII/universal/blob/master/.nycrc
>
> This has been a long road with many awkward turnings due to mismatched
> assumptions and inflexible implementations in the tower of projects that we
> depend on, and let us all join in congratulating Tony on the endurance and
> carefulness needed to land this highly valuable work improving our project
> infrastructure.
>
> Cheers,
>
> Antranig.
> _______________________________________________
> Architecture mailing list
> Architecture@lists.gpii.net
> https://lists.gpii.net/mailman/listinfo/architecture
>
>
>
> _______________________________________________
> Architecture mailing list
> Architecture@lists.gpii.net
> https://lists.gpii.net/mailman/listinfo/architecture
>
>
_______________________________________________
Architecture mailing list
Architecture@lists.gpii.net
https://lists.gpii.net/mailman/listinfo/architecture

Reply via email to