# Writing Your Own Runner
Most test runners have two stages: finding all tests, followed by
executing them (or a subset thereof).
To find all tests in the repository, it is **strongly** recommended to
use the included `wpt manifest` tool: the required behaviors are more
complex than what are documented (especially when it comes to
precedence of the various possibilities and some undocumented legacy
ways to define test types), and hence its behavior should be
considered the canonical definition of how to enumerate tests and find
their type in the repository.
For test execution, please read the documentation for the various test
types very carefully and then check your understanding on the [mailing
list][public-test-infra] or [matrix][matrix]. It's possible edge-case
behavior isn't properly documented!
[public-test-infra]: https://lists.w3.org/Archives/Public/public-test-infra/
[matrix]: https://app.element.io/#/room/#wpt:matrix.org
[web irc]: http://irc.w3.org