{"id":13770573,"url":"https://github.com/jaredsburrows/gradle-spoon-plugin","last_synced_at":"2025-08-20T22:32:13.387Z","repository":{"id":27081081,"uuid":"109315426","full_name":"jaredsburrows/gradle-spoon-plugin","owner":"jaredsburrows","description":"Gradle plugin that provides a task to run Android instrumentation tests via Spoon.","archived":false,"fork":false,"pushed_at":"2025-07-04T20:32:28.000Z","size":974,"stargazers_count":128,"open_issues_count":36,"forks_count":27,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-04T21:31:42.572Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jaredsburrows.github.io/gradle-spoon-plugin/","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaredsburrows.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-02T20:28:26.000Z","updated_at":"2025-06-17T02:33:07.000Z","dependencies_parsed_at":"2025-05-13T13:36:25.950Z","dependency_job_id":"e42d2916-21ab-4edd-8518-e0a68b40415e","html_url":"https://github.com/jaredsburrows/gradle-spoon-plugin","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jaredsburrows/gradle-spoon-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fgradle-spoon-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fgradle-spoon-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fgradle-spoon-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fgradle-spoon-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredsburrows","download_url":"https://codeload.github.com/jaredsburrows/gradle-spoon-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fgradle-spoon-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271397964,"owners_count":24752641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:00:39.306Z","updated_at":"2025-08-20T22:32:13.093Z","avatar_url":"https://github.com/jaredsburrows.png","language":"Groovy","funding_links":[],"categories":["Integration Test"],"sub_categories":["Library"],"readme":"# Gradle Spoon Plugin\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n[![Maven](https://img.shields.io/maven-central/v/com.jaredsburrows/gradle-spoon-plugin?label=maven\u0026style=flat)](https://search.maven.org/artifact/com.jaredsburrows/gradle-spoon-plugin)\n[![Gradle Plugin Portal](https://img.shields.io/gradle-plugin-portal/v/com.jaredsburrows.spoon)](https://plugins.gradle.org/plugin/com.jaredsburrows.spoon)\n[![Build](https://github.com/jaredsburrows/gradle-spoon-plugin/actions/workflows/build.yml/badge.svg)](https://github.com/jaredsburrows/gradle-spoon-plugin/actions/workflows/build.yml)\n[![Twitter Follow](https://img.shields.io/twitter/follow/jaredsburrows.svg?style=social)](https://twitter.com/jaredsburrows)\n\nGradle plugin for [Spoon](https://github.com/square/spoon) 2+ and [Android Gradle Plugin](https://developer.android.com/studio/releases/gradle-plugin.html) 3+.\n\n## Download\n\n**Release:**\n```groovy\nbuildscript {\n  repositories {\n    mavenCentral()\n    // For Spoon snapshot, until 2.0.0 is released\n    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }\n  }\n\n  dependencies {\n    classpath 'com.jaredsburrows:gradle-spoon-plugin:1.6.2'\n  }\n}\n\nrepositories {\n  // For Spoon snapshot, until 2.0.0 is released\n  maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }\n}\n\napply plugin: 'com.android.application'\napply plugin: 'com.jaredsburrows.spoon'\n\ndependencies {\n  // For Spoon snapshot, until 2.0.0 is released\n  androidTestCompile 'com.squareup.spoon:spoon-client:2.0.0-SNAPSHOT'\n}\n```\nRelease versions are available in the [Sonatype's release repository](https://repo1.maven.org/maven2/com/jaredsburrows/gradle-spoon-plugin/).\n\n**Snapshot:**\n```groovy\nbuildscript {\n  repositories {\n    maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }\n    // For Spoon snapshot, until 2.0.0 is released\n    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }\n  }\n\n  dependencies {\n    classpath 'com.jaredsburrows:gradle-spoon-plugin:1.6.3-SNAPSHOT'\n  }\n}\n\nrepositories {\n  // For Spoon snapshot, until 2.0.0 is released\n  maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }\n}\n\napply plugin: 'com.android.application'\napply plugin: 'com.jaredsburrows.spoon'\n\ndependencies {\n  // For Spoon snapshot, until 2.0.0 is released\n  androidTestCompile 'com.squareup.spoon:spoon-client:2.0.0-SNAPSHOT'\n}\n```\nSnapshot versions are available in the [Sonatype's snapshots repository](https://oss.sonatype.org/content/repositories/snapshots/com/jaredsburrows/gradle-spoon-plugin/).\n\n**Library modules:**\n\nThis plugin allows Spoon to be run on library modules too!\n\n```groovy\napply plugin: 'com.android.library'\napply plugin: 'com.jaredsburrows.spoon'\n\ndependencies {\n  // For Spoon snapshot, until 2.0.0 is released\n  androidTestCompile 'com.squareup.spoon:spoon-client:2.0.0-SNAPSHOT'\n}\n```\n\n## Tasks\n\nEntire project:\n- **`gradlew spoon{variant}`**\n\nor per module:\n- **`gradlew app:spoon{variant}`**\n- **`gradlew library:spoon{variant}`**\n\n## Usage\n\n**Optional extension:**\n```groovy\nspoon {\n  // Identifying title for this execution. (\"Spoon Execution\" by default)\n  title = \"My tests\"\n  \n  // Path to output directory. (\"$buildDir/spoon-output\" by default)\n  baseOutputDir = \"spoonTests\"\n\n  // Whether or not debug logging is enabled. (false by default)\n  debug = true\n\n  // Whether or not animations are enabled. Disable animated gif generation. (false by default)\n  noAnimations = true\n\n  // Set ADB timeout. (minutes) (default is 10 mins)\n  adbTimeout = 5\n\n  // Add device serials for test execution\n  devices = [\"emulator-5554\", \"emulator-5556\"]\n\n  // Add device serials for skipping test execution.\n  skipDevices = [\"emulator-5555\"]\n\n  // Extra arguments to pass to instrumentation.\n  instrumentationArgs = [\"listener:com.foo.Listener,com.foo.Listener2\", \"classLoader:com.foo.CustomClassLoader\"]\n\n  // Test class name to run (fully-qualified).\n  className = \"com.android.foo.FooClassName\"\n  \n  // Run annotated tests - small, medium, large\n  testSize = \"large\"\n  \n  // Allow no devices to be connected. (false by default)\n  allowNoDevices = true\n\n  // Execute the tests device by device. (false by default)\n  sequential = true\n\n  // Grant all runtime permissions during installation on Marshmallow and above devices. (false by default)\n  grantAll = true\n\n  // Test method name to run (must also use className)\n  methodName = \"testMethodName\"\n\n  // Code coverage flag. For Spoon to calculate coverage file your app must have the `WRITE_EXTERNAL_STORAGE` permission. (false by default)\n  codeCoverage = true\n\n  // Toggle sharding. (false by default)\n  shard = true\n\n  // The number of separate shards to create.\n  numShards = 10\n\n  // The shardIndex option to specify which shard to run.\n  shardIndex = 2\n  \n  // Run tests in separate instrumentation calls.\n  singleInstrumentationCall = true\n\n  // Do not fail build if a test fails, let all the tests run and finish. (false by default)\n  ignoreFailures = true\n\n  // Clear app data before each test. (false by default)\n  clearAppDataBeforeEachTest = true\n}\n```\n\n## License\n```\nCopyright (C) 2017 Jared Burrows\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredsburrows%2Fgradle-spoon-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredsburrows%2Fgradle-spoon-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredsburrows%2Fgradle-spoon-plugin/lists"}