YourBase
  • Docs
  • Case Study
  • Pricing
  • Team
  • Get Started
Shorten test times by up to 90%
with YourBase Test Acceleration
Free 30-Day Trial
Get Started
$ pytest
Running tests...
tests/test_admin.py ..                          [  0%]
tests/test_api_auth.py ....                     [  2%]
tests/test_api_builds.py ...................... [ 20%]
......................................F.....FF. [ 38%]
tests/test_api_users.py ....................... [ 81%]
tests/test_user.py ...                          [100%]
YourBase ran 47 out of 186 tests
3 failures found.
See YourBase In Action
Developers
  • Commit more changes more frequently.
  • Reduce time to feedback on code changes.
  • Increase test coverage without increasing test time.
Engineering Teams
  • Dramatically reduce infrastructure costs.
  • Have shorter release cycles.
  • Boost engineering productivity.

The Technology

Accelerate tests with an automated dependency graph

Get the same test results faster with YourBase Test Acceleration, a package you install seamlessly into your codebase and plug into your existing CI workflows.

An automatically inferred dependency graph traces your code base to understand the execution paths that your tests take and only runs the tests whose paths overlap with the code changes being evaluated.

As a result, builds that took up to an hour or more finish in seconds or a few minutes every time, leading to incredible gains in developer productivity.

Venmo logo

YourBase Test Acceleration cut our test times by over 50%, from 36 minutes to 15 minutes, on average. The integration was easy and we saw results in two weeks.

— Kane Ho
Software Development Manager at Venmo
Moonlightwork logo

Our builds went from 30 minutes to 5 minutes.

— Philip Thomas
CEO at Moonlightwork

Enable team-based acceleration gains with shared dependency graphs

Dependency graphs between CI systems and developers automatically synchronize to allow each one to benefit from the other.

  • Avoid retesting code that's been recently tested by other developers or CIs.
  • New developers can accelerate tests immediately without running the full test suite.

What You Can Expect

Acceleration for your entire pipeline

Develop, build, deploy, and release faster, letting you improve your entire product faster.

The end result? A team that performs quickly to make customers happier, faster.

Sheertex logo

YourBase helps my team quickly respond to customer feedback.

— David Wolever
Director of Automation at Sheertex

Faster development

Enable fast test feedback on code changes in CI and during local development.

Faster builds & releases

Have shorter release cycles, getting changes to customers faster.

Works in any cloud, offline, or on premise

Google Cloud AWS Azure DigitalOcean On-Premise

Works in any CI

Jenkins Travis CI Circle CI GitHub GitHub Actions GitLab Buildkite Codeship Buildbot

Supported Operating Systems

macOS Linux

Get up and running in seconds

Quick-start instructions
pip install yourbase
pytest # set up dependency graph (one-time)
pytest # run tests with acceleration!

See our Python Docs for more details on setting up Test Acceleration.

Set up team-based acceleration gains.

See our Python Docs > Set Up Shared Dependency Graph .

Set up for CI (CircleCI, TravisCI, Jenkins, etc.).

See our Python Docs > For Use in a CI .

Free for 30 days. No credit card required.

After 30 days from first use, test runs will continue to execute but without YourBase Test Acceleration. To continue using YourBase Test Acceleration after 30 days, discuss plan options with us by emailing hi@yourbase.io.

To discontinue at any time, simply uninstall the package. To opt out of usage data sharing, see instructions.

By installing, you agree to our Terms of Service and our Privacy Policy.


Receive the latest news

Learn about the latest developments at YourBase, including feature releases, product news and more.

🚀 Submitted! Thank you for your interest in YourBase.
We're sorry, something went wrong. Please try again later.
Install command
pip install yourbase

In a file or section that runs before your tests, import yourbase and attach it to unittest:

tests.py
import unittest
import yourbase

yourbase.attach(unittest)

See our Python Docs for more details on setting up Test Acceleration.

Set up team-based acceleration gains.

See our Python Docs > Set Up Shared Dependency Graph .

Set up for CI (CircleCI, TravisCI, Jenkins, etc.).

See our Python Docs > For Use in a CI .

Free for 30 days. No credit card required.

After 30 days from first use, test runs will continue to execute but without YourBase Test Acceleration. To continue using YourBase Test Acceleration after 30 days, discuss plan options with us by emailing hi@yourbase.io.

To discontinue at any time, simply uninstall the package. To opt out of usage data sharing, see instructions.

By installing, you agree to our Terms of Service and our Privacy Policy.


Receive the latest news

Learn about the latest developments at YourBase, including feature releases, product news and more.

🚀 Submitted! Thank you for your interest in YourBase.
We're sorry, something went wrong. Please try again later.

Get notified when we launch for RSpec.

🚀 Submitted! Thank you for your interest in YourBase.
We're sorry, something went wrong. Please try again later.

Get notified when we launch for minitest.

🚀 Submitted! Thank you for your interest in YourBase.
We're sorry, something went wrong. Please try again later.

Express interest in supporting your library.

🚀 Submitted! Thank you for your interest in YourBase.
We're sorry, something went wrong. Please try again later.

Frequently Asked Questions

Data Collection

What data does YourBase collect?

Without opting out, YourBase collects anonymized data about how the YourBase library is behaving to help resolve technical issues and develop the product with people’s use cases in mind.

The type of information we collect is illustrated in the following example:

{
  "total_test_count": 123,
  "test_skipped_count": 50,
  "started_at": "RFC3339",
  "ended_at": "RFC3339",
  "build_id": "<opaque anonymous token>",
  "treeish": "01234abc" | null,
  "cohort": {
    "id": 2,
    "count": 10
  },
  "acceleration": {
    "language": "Python",
    "version": "5.2.2"
  }
}

If the type of data collected changes, YourBase will always inform you at runtime. You can opt out of telemetry at any time (see the Q&A below).

How do I opt out of usage data sharing?

To avoid sending any crash data or usage statistics to the YourBase Team, set the environment variable YOURBASE_TELEMETRY to false.

Overview

How do I get started?

Getting started is easy.

  • For Python: add yourbase to your requirements.txt file. Visit our Getting Started with Python Test Acceleration Docs.

  • For Ruby: Contact us at hi@yourbase.io to join our private beta for Ruby.

  • For additional languages: we are actively working on other languages! Do not hesitate to get in touch with us at hi@yourbase.io to ask about support for your language.

For general docs about all tools at YourBase, visit docs.yourbase.io.

Do you have a video so I can see what to expect?

View YourBase Python Test Selection in action in a quick 3 minute video.

How much does this cost?

After the conclusion of the free trial, YourBase Test Acceleration is $30/developer/month for up to 50 developers — which is probably less than the monthly cost of coffee! 😉 ☕ Contact us at hi@yourbase.io.

How do I know if YourBase is accelerating my tests correctly?

YourBase Test Acceleration includes an “Observation Mode” which allows you to test drive test selection without actually accelerating any tests.

In Observation Mode YourBase will not enable acceleration, but it will monitor if it would have skipped running any tests that ultimately failed. At the end, it will print out the names of any tests that would have been incorrectly skipped.

Enabling Observation Mode is easy: set YOURBASE_OBSERVATION_MODE to true in your environment, and then run your tests like normal.

How does YourBase count users?

A user is anyone who contributes code to a codebase with YourBase installed. We will discuss the estimated number of users with you while working out a contract.

Will YourBase Work For Me?

How do I use YourBase with my given toolset?

YourBase Test Selection is toolset-agnostic, so we enhance your current workflow, not alter it.

See our Python docs on how to use YourBase in CI.

Will YourBase work with my CI?

YourBase Test Acceleration is designed to work with your CI system of choice. Through environment variables and consistent hashing, YourBase Test Parallelization can be configured to split your tests across shards by configuring cohorts. For more details, see https://pypi.org/project/yourbase/ and how to use YourBase in CI.

What types of testing are supported by YourBase? Unit, integration, end-to-end, etc.?

YourBase is availsble for testing code that happens inside a single process, which includes most unit tests. External network connections or cross-server connections are not properly observed. End-to-end tests would likely not be a good fit unless they occur within a single process for our dependency graph can observe all activity. See our PyPi docs to learn how to force specific tests to always run.

What Python testing frameworks are supported?

YourBase Test Acceleration supports pytest and unittest. See our install instructions.

Does YourBase work with Django?

Yes. django.test is unittest under the hood, which is supported by YourBase.

Does YourBase work with Poetry?

Yes. Run poetry add yourbase and poetry run pytest to set it up.

Under the Hood

Where are dependency graphs stored?

Locally, dependency graphs are stored in your XDG-standard cache location. On Linux and macOS this is usually ~/.cache/yourbase, where you will find cached dependency graphs for each language you use YourBase with.

What is sharding? Why would I shard tests? How would I do it?

Sharding provides a way to run subsets of tests on your hosts to parallelize them. This is beneficial in scenarios where a full test run requires too much time to run on a single node and needs to be distributed. YourBase will merge graphs from multiple shards for the same commit, which can be used in future builds. You can schedule full builds that are sharded and run subsequent builds on single nodes.

For Python, see our Python docs on sharding.

YourBase did not skip any tests. Why is that?

YourBase always prioritizes correctness over accelerating a test. There are a few known situations that could lead to this scenario. If you are running into this, please reach out at support@yourbase.io. We add new features all the time and would love to learn more about your use case.

How do I deliberately run all tests without accelerating any tests?

Temporarily disable YourBase Test Acceleration by setting environment variable YOURBASE_DISABLE to true. You can also remove or disable the YourBase library, e.g. by commenting it out in your Gemfile (for Ruby) or requirements.txt (for Python).

How does YourBase Test Acceleration affect the percentage covered for coverage reports?

YourBase Test Acceleration is designed to avoid test runs that do not need to be executed. The percentage covered may appear lower than what is actually covered as a result. If your CI is configured to fail a build based on percentage covered, you may need to reconfigure this feature. YourBase has future plans to fill missing coverage data with data from previous runs.

How does YourBase Test Acceleration handle changes to dependencies in the codebase?

YourBase currently only traces code located inside your repository, for a few reasons:

  • The overhead is significantly reduced when it does not include installed libraries.
  • Since dependencies often follow semantic versioning, changes to those libraries that do not require code changes on your part should be transparent to you.
  • Most package managers provide a version lock file, preventing dependencies from randomly being upgraded

We also have future plans to trace library changes without the additional overhead in a future release.

Questions or comments?
Get in touch with our team at hi@yourbase.io.

Product
Docs
Login
Our Technology
Get in Touch
hi@yourbase.io
Our Team
Jobs
Resources
LinkedIn
Twitter
Blog
Company Values
Legal
Terms
Privacy