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
- **Purpose:** Perform a basic test discovery based on the provided command.
139
140
- **Functionality:** Directly executes the specified command and displays the discovered tests.
140
141
- **Limitations:** Doesn't utilize any built-in logic or advanced discovery capabilities.
141
142
- **Suitable for:** Simple test discovery scenarios where the command directly identifies the desired tests.
142
143
143
-
**`type:automatic`**
144
+
**`type:automatic`**
144
145
145
146
- **Purpose:** Utilize backend logic to discover tests using external tools.
146
147
- **Functionality:** Relies on a backend tool, such as Snooper, to perform test discovery.
@@ -149,14 +150,47 @@ type: automatic
149
150
150
151
In summary, `type:raw` is a basic and straightforward approach for discovering tests based on a specified command, while `type:automatic` provides more flexibility and advanced capabilities by leveraging external tools and backend logic.
151
152
152
-
#### `mode`
153
+
#### `mode`
154
+
This attribute defines where the test discovery occurs and how it is executed. HyperExecute now supports three discovery modes: `static`, `dynamic`, and `remote`.
155
+
153
156
```yaml
154
157
#test discovery happens on machine where CLI is running
155
158
mode: static #or
156
159
157
160
#test discovery happens on HyperExecute VMs
158
-
mode: dynamic
161
+
mode: dynamic #or
162
+
163
+
# test discovery happens in designated HyperExecute VMs
164
+
mode: remote
159
165
```
166
+
**`mode: static`**
167
+
168
+
- **Purpose:** Test discovery is performed locally on the machine where the CLI is running.
169
+
- **Use Case:** Ideal for small projects or when tests need to be discovered locally.
170
+
- **Limitations:** Requires dependencies installed locally and doesn’t support matrix-based distributions. Debugging logs are generated locally, limiting visibility.
171
+
172
+
**`mode: dynamic`**
173
+
174
+
- **Purpose:** Test discovery occurs on HyperExecute’s VMs during runtime, depending on the concurrency and OS settings.
175
+
- **Use Case:** Suitable for scenarios where distributed test discovery is required across different VMs.
176
+
- **Limitations:** Increases test execution time due to VM-level discovery. It also lacks efficient test distribution across VMs, and is incompatible with YAML 0.2 test discovery runners.
The `remote` discovery mode addresses the limitations of both `static` and `dynamic` modes. Instead of running test discovery on your local machine (static) or on multiple Virtual Machines (dynamic), this mode centralizes the process by using a dedicated remote Virtual Machines.
181
+
182
+
This setup helps to ease the discovery process and makes it more efficient, especially for complex test setups. Additionally, it fully supports [matrix-based testing](https://www.lambdatest.com/support/docs/hyperexecute-matrix-multiplexing-strategy/), which allows you to discover and manage tests across different configurations more effectively.
183
+
184
+
#### Key Features:
185
+
- **Centralized Discovery Tasks:** Tests are discovered remotely in a Virtual Machines designed for this purpose. Discovery tasks focus solely on identifying the tests without executing them, optimizing the discovery process.
186
+
187
+
- **Orchestration Support:** Once tests are identified, orchestration algorithms ensure they are efficiently distributed across Virtual Machines, reducing idle time and improving resource utilization.
188
+
189
+
- **Matrix Support:** Fully supports matrix configurations, allowing individual test discovery for each matrix combination, particularly useful for YAML 0.2 runners.
190
+
191
+
- **Optimized Caching:** Remote Discovery Mode reduces redundant cache operations by performing them once in the discovery task, and sharing the cache across all Execution Tasks. This speeds up the overall process and minimizes resource wastage.
192
+
193
+
- **Code Caching:** For users cloning their codebase via Git, Remote Discovery caches the code during the discovery task, reducing Git rate limits and accelerating the execution tasks.
160
194
161
195
#### `command`
162
196
The command that fetches the list of test scenario that would be further executed using the value passed in testRunnerCommand
0 commit comments