Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
com.facebook.testing.screenshot:layout-hierarchy-litho
Advanced tools
Screenshot Tests Litho Layout Hierarchy Plugins
screenshot-tests-for-android is a library that can generate fast deterministic screenshots while running instrumentation tests on Android.
We mimic Android's measure(), layout() and draw() to generate screenshots on the test thread. By not having to do the rendering on a separate thread we have control over animations and handler callbacks which makes the screenshots extremely deterministic and reliable for catching regressions in continuous integration.
We also provide utilities for using screenshot tests during the development process. With these scripts you can iterate on a view or layout and quickly see how the view renders in a real Android environment, without having to build the whole app. You can also render the view in multiple configurations at one go.
Take a look at the documentation at http://facebook.github.io/screenshot-tests-for-android/#getting-started
screenshot-tests-for-android is known to work with MacOS or Linux.
The host tooling probably doesn't work on Windows, but can be made to work with a little effort. We'll happily accept pull requests!
You need python-2.7 for the gradle plugin to work, and we also recommending installing the python-pillow library which is required for recording and verifying screenshots.
You don't have to build screenshot-tests-for-android from scratch if you don't plan to contribute. All artifacts are available from Maven Central.
If you plan to contribute, this is the code is broken up into a few modules:
The core
module is packaged as part of your instrumentation tests
and generates screenshots on the device.
The plugin
module adds Gradle tasks to make it easier to work
with screenshot tests.
The layout-hierarchy-common
module adds extra common View
information to your reports' layout hierarchy viewer
The layout-hierarchy-litho
module adds extra Litho component information to your reports' layout hierarchy viewer
In addition you'll find python code inside plugin/src/py
. This code
is packaged into the gradle plugin.
We have tests for the python code and the core library. Run these commands to run all the tests:
$ gradle :plugin:pyTests
$ gradle :core:connectedAndroidTest
Both need a running emulator.
Python tests rely on the mock
and Pillow
libraries. Both can be installed via pip install mock
and pip install Pillow
.
You can install all the artifacts to your local maven repository using
$ gradle installArchives
For usage with a remote testing service (e.g. Google Cloud Test Lab) where ADB is not available directly the plugin supports a "disconnected" workflow. Collect all screenshots into a single directory and run the plugin using the following options
The location of the screenshot artifacts can be configured in the project's build.gradle:
screenshots {
// Points to the directory containing all the files pulled from a device
referenceDir = path/to/screenshots
}
Then, screenshots may be verified by executing the following:
$ gradle :<project>:verify<flavor>ScreenshotTest
To record, simply change verify
to record
.
Please see the contributing file.
screenshot-tests-for-android was originally written by Arnold Noronha (arnold@tdrhq.com) You can reach him at @tdrhq on GitHub.
It is currently maintained by Hilal Alsibai (@xiphirx)
screenshot-tests-for-android is Apache-2-licensed.
FAQs
Screenshot Tests Litho Layout Hierarchy Plugins
We found that com.facebook.testing.screenshot:layout-hierarchy-litho demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.