README.md in rspec-tracer-0.5.0 vs README.md in rspec-tracer-0.6.0
- old
+ new
@@ -6,39 +6,46 @@
It uses [Ruby's built-in coverage library](https://ruby-doc.org/stdlib/libdoc/coverage/rdoc/Coverage.html)
to keep track of the coverage for each test. For each test executed, the coverage
diff provides the desired file list. RSpec Tracer takes care of reporting the
**correct code coverage when skipping tests** by using the cached reports. Also,
-note that it will **never skip any tests which failed or were pending** in the last runs.
+note that it will **never skip**:
+- **Flaky examples**
+- **Failed examples**
+- **Pending examples**
+
Knowing the examples and files dependency gives us a better insight into the codebase,
and we have **a clear idea of what to test for when making any changes**. With this data,
we can also analyze the coupling between different components and much more.
## Note
-You should take some time and go through the [document](./RSPEC_TRACER.md) describing
-the **intention** and implementation details of **skipping tests**, **managing coverage**,
-and **caching on CI**, etc.
+You should take some time and go through the **[document](./RSPEC_TRACER.md)** describing
+the **intention** and implementation details of **managing dependency**, **managing flaky tests**,
+**skipping tests**, and **caching on CI**. You must go through the README file before
+integrating the gem into your project to better understand what is happening.
## Table of Contents
* [Demo](#demo)
* [Installation](#installation)
* [Compatibility](#compatibility)
* [Additional Tools](#additional-tools)
* [Getting Started](#getting-started)
* [Environment Variables](#environment-variables)
+ * [BUNDLE_PATH](#bundle_path)
* [CI](#ci)
* [LOCAL_AWS](#local_aws)
* [RSPEC_TRACER_NO_SKIP](#rspec_tracer_no_skip)
* [RSPEC_TRACER_S3_URI](#rspec_tracer_s3_uri)
* [RSPEC_TRACER_UPLOAD_LOCAL_CACHE](#rspec_tracer_upload_local_cache)
* [TEST_SUITES](#test_suites)
* [TEST_SUITE_ID](#test_suite_id)
* [Sample Reports](#sample-reports)
* [Examples](#examples)
+ * [Flaky Examples](#flaky-examples)
* [Examples Dependency](#examples-dependency)
* [Files Dependency](#files-dependency)
* [Configuring RSpec Tracer](#configuring-rspec-tracer)
* [Filters](#filters)
* [Defining Custom Filteres](#defining-custom-filteres)
@@ -140,12 +147,20 @@
6. After running your tests, open `rspec_tracer_report/index.html` in the
browser of your choice.
## Environment Variables
-To get better control on execution, you can use the following two environment variables:
+To get better control on execution, you can use the following environment variables
+whenever required.
+### BUNDLE_PATH
+
+Since the bundler uses a vendor directory inside the project, it might cause slowness
+depending on the vendor size. You can configure the bundle path outside of the project
+using `BUNDLE_PATH` environment variable, for example, `BUNDLE_PATH=$HOME/vendor/bundle`.
+Make sure to cache this directory in the CI configuration.
+
### CI
Mostly all the CI have `CI=true`. If not, you should explicitly set it to `true`.
### LOCAL_AWS
@@ -188,11 +203,11 @@
### TEST_SUITE_ID
If you have a large set of tests to run, it is recommended to run them in
separate groups. This way, RSpec Tracer is not overwhelmed with loading massive
-cached data in the memory. Also, it generate and use cache for specific test suites
+cached data in the memory. Also, it generates and uses cache for specific test suites
and not merge them.
```ruby
TEST_SUITE_ID=1 bundle exec rspec spec/models
TEST_SUITE_ID=2 bundle exec rspec spec/helpers
@@ -226,9 +241,22 @@
![](./readme_files/examples_report_first_run.png)
**Next Run**
![](./readme_files/examples_report_next_run.png)
+
+### Flaky Examples
+
+These reports provide flaky tests information. Assuming **the following two tests
+failed in the first run.**
+
+**Next Run**
+
+![](./readme_files/flaky_examples_report_first_run.png)
+
+**Another Run**
+
+![](./readme_files/flaky_examples_report_next_run.png)
### Examples Dependency
These reports show a list of dependent files for each test.