|
|
|
|
|
by swagonomixxx
1454 days ago
|
|
Running tests locally is pretty much a no-no for many codebases because they are so large and tests take a long time if they don't run on a beefy test server or in parallel. Common examples of this are multi-million line C++ codebases (e.g proprietary game engines) and monorepos in any language. Running tests on my computer uses up valuable CPU cycles that I can use to work on something else while the CI servers are running my tests. However I can see this working for small to medium sized codebases that really don't need CI for testing. |
|
Capacity planning applies to tests. As your test count goes up your budget per test goes down. Every CI tool should plot build and test duration over time and only a couple do.
There’s a reason most test frameworks can mark slow tests. You need to not only use that but ratchet down over time. Especially when you get new hardware.
I haven’t run benchmarks lately but my old rule of thumb developed over many projects and with several people better at testing than I, was a factor of eight for each layer in the testing pyramid.
That certainly puts a lot of runtime pressure on the top of the pyramid, but that’s by design. You don’t want people racing to the top, because that’s how you get a cone.