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.
View YourBase Python Test Selection in action in a quick 3 minute video.
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.
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.
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.
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.
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.
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.
YourBase Test Acceleration supports pytest and unittest. See our install instructions.
Yes. django.test
is unittest
under the hood, which is supported by YourBase.
Yes. Run poetry add yourbase
and poetry run pytest
to set it up.
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.
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 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.
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).
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.
YourBase currently only traces code located inside your repository, for a few reasons:
We also have future plans to trace library changes without the additional overhead in a future release.
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).
To avoid sending any crash data or usage statistics to the YourBase Team, set the environment variable YOURBASE_TELEMETRY
to false
.
Questions or comments?
Get in touch with our team at
hi@yourbase.io.