···11# Custom Pool
2233::: warning
44-This is advanced API. If you are just running tests, you probably don't need this. It is primarily used by library authors.
44+This is advanced API. If you just want to [run tests](/guide/), you probably don't need this. It is primarily used by library authors.
55:::
6677Vitest runs tests in pools. By default, there are several pools:
+1-1
docs/advanced/runner.md
···11# Test Runner
2233::: warning
44-This is advanced API. If you are just running tests, you probably don't need this. It is primarily used by library authors.
44+This is advanced API. If you just want to [run tests](/guide/), you probably don't need this. It is primarily used by library authors.
55:::
6677You can specify a path to your test runner with the `runner` option in your configuration file. This file should have a default export with a class constructor implementing these methods:
+5-1
docs/guide/in-source.md
···4455# In-Source Testing
6677-Vitest also provides a way to run tests within your source code along side the implementation, similar to [Rust's module tests](https://doc.rust-lang.org/book/ch11-03-test-organization.html#the-tests-module-and-cfgtest).
77+Vitest provides a way to run tests within your source code along side the implementation, similar to [Rust's module tests](https://doc.rust-lang.org/book/ch11-03-test-organization.html#the-tests-module-and-cfgtest).
8899This makes the tests share the same closure as the implementations and able to test against private states without exporting. Meanwhile, it also brings a closer feedback loop for development.
1010+1111+::: warning
1212+This guide explains how to write tests inside your source code. If you need to write tests in separate test files, follow the ["Writing Tests" guide](/guide/#writing-tests).
1313+:::
10141115## Setup
1216