On Wed, Feb 24, 2016 at 1:46 PM, Andrew Halberstadt <
ahalberst...@mozilla.com> wrote:

> Cool! I was actually just working on my mozlint prototype this past
> weekend. I have eslint and flake8 working, I'll see if I can get gradle
> lint integrated as well.
>

Android Gradle lint is rather more like a build than a lint.  That is, we
need a mozconfig for Fennec, and we need to run non-trivial build steps,
including the export tier.  Do try it, but don't expect this to be smooth.

Nick


> I'm trying to provide a standardized way of adding lints to various
> places, like mach, mozreview or taskcluster. So e.g |mach lint
> testing/mochitest| would run both eslint and flake8 (as that directory
> contains both .py and .js files).
>
> If you (or anyone reading this) are interested, I put up a patch in bug
> 1230962 and wouldn't mind some early feedback.
>
> Andrew
>
>
> On 24/02/16 03:06 PM, Nicholas Alexander wrote:
>
>> Hi y'all,
>>
>> We are now running Android unit tests and Android lint in automation:
>> Bug 1249166 [1].  You can see an example of this job at
>> https://treeherder.mozilla.org/#/jobs?repo=fx-team&revision=057c0e7cf189
>> -- it's the one labeled "Android 4.0 API15+ opt tc[Tier-2] (Unit)".  (I
>> have no
>> concrete plan to upgrade this to Tier 1 -- guidance appreciated.)
>>
>> The new job is Android API 15 only and runs Gradle in automation.  It
>> produces a special --disable-compile-environment Fennec and Gradle
>> build, followed by two |mach gradle| commands (one for unit tests and
>> one for lint) [2].
>>
>> Automation results
>> ==================
>>
>> The unit test and lint reports are uploaded to Task Cluster.  If you tap
>> "Unit", then "Taskcluster: Inspect Task" (in the bottom-left corner),
>> you should see a number of "Artifacts".  (Not related to artifact
>> builds, at least not directly.)  The two you want are (currently):
>>
>> public/android/unittest/automationDebug/index.html
>> public/android/lint/lint-results-automationDebug.html
>>
>> For example:
>>
>>
>> https://public-artifacts.taskcluster.net/UP3W7OHwQEGYNmHbPc5-pQ/0/public/android/unittest/automationDebug/index.html
>>
>> https://public-artifacts.taskcluster.net/UP3W7OHwQEGYNmHbPc5-pQ/0/public/android/lint/lint-results-automationDebug.html
>>
>> Local results
>> =============
>>
>> To run the unit tests locally, run |mach gradle test|.  (The command in
>> automation is a subset of this.)  If the unit tests fail in automation,
>> this will burn the tree.  Since the job is Tier 2, you shouldn't be
>> backed out -- but you will be a Bad Citizen and should co-ordinate with
>> the Fennec team to greenify the tree.
>>
>> During development, you can run these tests directly inside of Android
>> Studio.  Generally, this means right clicking a test class or test
>> method and choosing to "Run".
>>
>> To run lint locally, run |mach gradle lint|.  It's not currently
>> possible to burn the tree by introducing additional lint issues.  Bug
>> 1170283 [3] tracks burning down (fixing or ignoring) these lint issues,
>> so that we can make regressing lint a red tree.
>>
>> Documentation
>> =============
>>
>> There is none.  Android unit testing is very different to the existing
>> Robocop suite, and completely different from existing
>> Mochitest/Reftest/etc suites.  The Fennec team is slowly disseminating
>> Android unit testing knowledge throughout the team, but for now there's
>> nothing written down.  Look in
>>
>> https://dxr.mozilla.org/mozilla-central/source/mobile/android/tests/background/junit4
>> for existing examples; read
>>
>> http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Unit-testing
>> for configuration details; and dig into http://junit.org,
>> http://robolectric.org, and http://mockito.org for documentation on the
>> tools and frameworks we're using.
>>
>> Acknowledgments
>> ================
>>
>> The Task Cluster team made this possible.  In particular, Dustin
>> J. Mitchell (:dustin) has been *absolutely invaluable* in getting this
>> running.  Jonas Finnemann Jensen (:jonasfj) also deserves recognition.
>> Jordan Lund (:jlund) provided valuable mozharness help and reviews.
>> Dave Townsend (:Mossop) led the way by showing how to get eslint running
>> in the tree.  Finally, Mike Comella (:mcomella) has been a champion for
>> Android Lint for a long time and has done most of the legwork to make
>> the Lint results valuable.
>>
>> My thanks to you all.
>>
>> Best,
>> Nick
>>
>> [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1249166
>> [2] https://hg.mozilla.org/integration/fx-team/rev/b7f1dac8306f#l1.11
>> [3] https://bugzilla.mozilla.org/show_bug.cgi?id=1170283
>>
>>
> _______________________________________________
> dev-builds mailing list
> dev-builds@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-builds
>
_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to