| <p>String <code>"enormous"</code>, <code>"large"</code>, <code>"medium"</code>, or |
| <code>"small"</code>; <a href="#configurable-attributes">nonconfigurable</a>; |
| default is <code>"medium"</code></p> |
| |
| <p>Specifies a test target's "heaviness": how much time/resources it needs to run.</p> |
| |
| <p>Unit tests are considered "small", integration tests "medium", and end-to-end tests "large" or |
| "enormous". Bazel uses the size to determine a default timeout, which can be overridden using the |
| <code>timeout</code> attribute. The timeout is for all tests in the BUILD target, not for each |
| individual test. When the test is run locally, the <code>size</code> is additionally used for |
| scheduling purposes: Bazel tries to respect <code>--local_{ram,cpu}_resources</code> and not |
| overwhelm the local machine by running lots of heavy tests at the same time.</p> |
| |
| <p>Test sizes correspond to the following default timeouts and assumed peak local resource |
| usages:</p> |
| |
| <table style="width: 100%"> |
| <tr> |
| <th>Size</th> |
| <th>RAM (in MB)</th> |
| <th>CPU (in CPU cores)</th> |
| <th>Default timeout</th> |
| </tr> |
| <tr> |
| <td>small</td> |
| <td>20</td> |
| <td>1</td> |
| <td>short (1 minute)</td> |
| </tr> |
| <tr> |
| <td>medium</td> |
| <td>100</td> |
| <td>1</td> |
| <td>moderate (5 minutes)</td> |
| </tr> |
| <tr> |
| <td>large</td> |
| <td>300</td> |
| <td>1</td> |
| <td>long (15 minutes)</td> |
| </tr> |
| <tr> |
| <td>enormous</td> |
| <td>800</td> |
| <td>1</td> |
| <td>eternal (60 minutes)</td> |
| </tr> |
| </table> |
| |
| <p> |
| The environment variable |
| <code><a href="${link test-encyclopedia#initial-conditions}">TEST_SIZE</a></code> will be set to |
| the value of this attribute when spawning the test. |
| </p> |
| |