You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/guides/modules/test/pages/adaptive-testing.adoc
+25-18Lines changed: 25 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,9 @@ Use adaptive testing to optimize test runs as follows:
16
16
17
17
Adaptive testing reduces test execution time while maintaining test confidence.
18
18
19
-
== Use cases for adaptive testing
19
+
== Is my project a good fit for adaptive testing?
20
+
21
+
The following list shows some examples of where adaptive testing can be most beneficial:
20
22
21
23
* Unit and integration tests that exercise code within the same repository.
22
24
* Projects with comprehensive test coverage. The more thorough your tests, the more precisely adaptive testing can identify which tests are impacted by changes.
@@ -38,7 +40,12 @@ TIP: In codebases with sparse test coverage, adaptive testing cannot accurately
38
40
* Scale efficiently as test suites grow.
39
41
40
42
== How it works
41
-
The adaptive testing feature operates through two main components that work together to optimize your test execution:
43
+
Adaptive testing operates through two main components that work together to optimize your test execution:
44
+
45
+
* Dynamic test splitting
46
+
* Test impact analysis
47
+
48
+
Each component is described in more detail below.
42
49
43
50
=== Dynamic test splitting
44
51
Dynamic test splitting distributes your tests across parallel execution nodes. The system maintains a shared queue that each node pulls from to create a balanced workload.
@@ -737,11 +744,11 @@ The frequency depends on your test execution speed and development pace:
737
744
738
745
*Consider re-running analysis:*
739
746
740
-
. After major refactoring or code restructuring
741
-
. When test selection seems inaccurate or outdated
742
-
. After adding significant new code or tests
747
+
* After major refactoring or code restructuring
748
+
* When test selection seems inaccurate or outdated
749
+
* After adding significant new code or tests
743
750
744
-
*Remember:* You can customize which branches run analysis through your CircleCI configuration - it doesn't have to be limited to the main branch.
751
+
*Remember:* You can customize which branches run analysis through your CircleCI configuration - it does not have to be limited to the main branch.
745
752
746
753
=== Can I customize the test-suites.yml commands?
747
754
@@ -754,10 +761,10 @@ Yes, you can fully customize commands by defining `discover`, `run`, and `analys
754
761
755
762
*Requirements when customizing:*
756
763
757
-
. Ensure your commands properly handle test execution
758
-
. Generate valid coverage data for the analysis phase
759
-
. Use the correct template variables (`<< test.atoms >>`, `<< outputs.junit >>`, `<< outputs.lcov >>`)
760
-
. Output test results in a format CircleCI can parse (typically JUnit XML)
764
+
* Ensure your commands properly handle test execution.
765
+
* Generate valid coverage data for the analysis phase.
766
+
* Use the correct template variables (`<< test.atoms >>`, `<< outputs.junit >>`, `<< outputs.lcov >>`).
767
+
* Output test results in a format CircleCI can parse (typically JUnit XML).
761
768
762
769
=== What happens if no tests are impacted by a change?
763
770
@@ -792,22 +799,22 @@ You can also compare:
792
799
793
800
=== Can I run analysis on branches other than main?
794
801
795
-
Yes! The branch behavior is fully customizable through your CircleCI configuration. While analysis typically runs on `main` by default, you can configure it to run on:
802
+
Yes! The branch behavior is fully customizable through your CircleCI configuration. While analysis typically runs on `main` by default, you can configure it to run on any of the following:
796
803
797
-
. Any specific branch (for example, `develop` or `staging`).
798
-
. Multiple branches simultaneously.
799
-
. Feature branches if needed for testing.
800
-
. Scheduled pipelines independent of branch.
804
+
* Any specific branch (for example, `develop` or `staging`).
805
+
* Multiple branches simultaneously.
806
+
* Feature branches if needed for testing.
807
+
* Scheduled pipelines independent of branch.
801
808
802
809
See the <<run-higher-parallelism-on-the-analysis-branch,Run higher parallelism on the analysis branch>> example for an example of customizing branch behavior.
803
810
804
811
=== Can I run test analysis and selection on any branch?
805
812
806
813
Yes! The branch behavior is fully customizable through your CircleCI configuration. While analysis runs on main by default, you can configure it to run on:
807
814
808
-
. Any specific branch (for example, `develop` or `staging`).
809
-
. Feature branches if needed for testing.
810
-
. Scheduled pipelines.
815
+
* Any specific branch (for example, `develop` or `staging`).
816
+
* Feature branches if needed for testing.
817
+
* Scheduled pipelines.
811
818
812
819
See the <<run-higher-parallelism-on-the-analysis-branch,Run higher parallelism on the analysis branch>> example for an example of customizing branch behavior.
0 commit comments