Skip to content
CLI tool for collecting tests
Kotlin Java Python
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Update example script download path to 1.1.0 release (#12) Oct 17, 2019
gradle/wrapper Add ability to process class files with no annotations (#11) Oct 17, 2019
src Add method to gather all files that contain tests (#14) Oct 28, 2019
.editorconfig Add ability to process class files with no annotations (#11) Oct 17, 2019
.gitignore Fix Gradle wrapper script Oct 8, 2019
.travis.yml Remove matrix from Travis (#15) Oct 29, 2019
CHANGELOG.md Prepare for release 1.1.1 Oct 29, 2019
LICENSE.txt
README.md Prepare for release 1.1.1 Oct 29, 2019
RELEASING.md Prepare for release 1.1.1 Oct 29, 2019
build.gradle
gradle.properties Prepare next development version. Oct 29, 2019
gradlew Move everything to root (#5) Oct 9, 2019
gradlew.bat Move everything to root (#5) Oct 9, 2019
settings.gradle Move everything to root (#5) Oct 9, 2019

README.md

About

A fast and easy CLI tool that leverages AST (Abstract Syntax Tree) to parse test files for the purposes of test collection.

Apps that have a significant number of UI tests – like Paper or Dropbox apps – need to be sharded to run efficiently on CI. Unfortunately, UI test sharding generally requires you to build the entire application. Hypershard removes this first build by performing analysis of the Abstract Syntax Tree to output the list of all available tests.

At Dropbox, we run Android UI tests separately from JVM tests. Using historical data, we shard our UI tests such that each shard is balanced e.g. each shard ends approximately at the same time.

We do this by running tests using ADB Instrumentation test options -e testFile where each shard has its own list of tests.

Build Status

Download

The all jar is executable and can be downloaded from Maven Central

Snapshots of the development version are available in Sonatype's snapshots repository.

Another use case could be to use Hypershard as a dependency in your project

implementation 'com.dropbox.mobile.hypershard:hypershard:1.1.1'

Usage

java -jar hypershard-1.1.1-all.jar --help

Here's an example Python script that uses Hypershard as a CLI tool.

Building

This command will build the jar with dependencies

./gradlew install

Testing

./gradlew check

Contributing

This is a standalone gradle project, you can open this project to start contributing

You can’t perform that action at this time.