# Test Stacks

Every Testery Test Run has a **Test Stack.**  A Test Stack is a collection of operating systems and softwares to enable your Test Framework to run.

A full list of supported Test Stacks is available in the Testery app <https://testery.app/testery/settings/runner-configurations>

You never need to specify a Test Stack - if you don't provide one, a default stack will be selected for you.  However, you have the ability to control the versions of Node.js and Chrome that your tests will run against by providing a testery.yml file in your source repository.

For example, a Cypress run might be assigned, by default, to the `node-chrome.120-java.17-nodejs.18` test stack.  This uses Node.js 18 and Chrome 120.

If you wanted to test your code against Chrome 121, you would provide the following in your testery.yml file.

```
test_stack:
  configuration_key: node-chrome.121-java.17-nodejs.18
```

One benefit of this approach is allowing you to test new versions of dependencies on a branch.  Testery will respect the testery.yml file in your branch, allowing you to fix issues on your branch, while using the default Test Stack on your `main` branch.
