Cargo-nextest: 3x faster than cargo test, per-test isolation, first-class CI
86 points
3 days ago
| 7 comments
| nexte.st
| HN
sunshowers
3 hours ago
[-]
Thanks for posting about this! I'm the main author of nextest, and it represents my best foot forward for how Rust testing should be done. Happy to answer questions though I might be a bit intermittent.
reply
gdcbe
51 minutes ago
[-]
Thank you very much for developing nextest. It is what allows our projects like rama [1] to run thousands and thousands of tests in a blink of an eye! Keep it up!

[1] https://ramaproxy.org

reply
landr0id
3 hours ago
[-]
Big fan of nextest and this is my first time seeing this site. I'll be real I feel a bit ridiculous commenting this but you might want to consider rephrasing this:

>Treat tests as cattle, not pets. Detect and terminate slow tests.

Not sure saying, "hey, treat your tests as an animal you can kill at will" paints the right image.

reply
trollbridge
2 hours ago
[-]
This is from the Kubernetes saying of "treat servers like cattle, not pets". Of course, some people like me keep cattle as pets, but then again I also name my servers, even the virtual or containerised ones.
reply
sunshowers
2 hours ago
[-]
Yeah that was indeed the inspiration (though I'm pretty sure it predates Kubernetes!) but the juxtaposition with "terminate" is unfortunate.
reply
wojciii
2 hours ago
[-]
I liked the way it was phrased. You can't make everybody happy. :)
reply
sunshowers
2 hours ago
[-]
That's fair! I'll find a way to rephrase it.

edit: Updated to "Detect and handle slow tests". Thanks again!

reply
mrec
1 hour ago
[-]
Have there been any discussions about upstreaming this into cargo proper? Are there any significant downsides to nextest compared to its predecessor?
reply
sunshowers
1 hour ago
[-]
The How it works [1] and Why process-per-test? [2] pages should answer your questions.

[1] https://nexte.st/docs/design/how-it-works/

[2] https://nexte.st/docs/design/why-process-per-test/

reply
mrec
1 hour ago
[-]
Ah, I see. You're aiming to become the hashbrown of testing.
reply
sunshowers
1 hour ago
[-]
Oh gosh, were we to be so lucky :) just aiming to solve problems my coworkers and users see, and doing it with care, is all.
reply
weinzierl
2 hours ago
[-]
The "execution model" page[1] is documentation at its best!

It answered 90% of the questions I had at the monent. Thank you!

[1] https://nexte.st/docs/design/how-it-works/

reply
jstrong
11 minutes ago
[-]
seems like `cargo nextest run` just runs `--lib` tests by default? however, `cargo test` is not so slow if you do `cargo test --lib`. how do I get nextest to execute the doc tests, too?
reply
mohsen1
53 minutes ago
[-]
I love nextest. without it my CI could take hours

https://github.com/tsz-org/tsz/actions/runs/29002057457/job/...

watch it running 32.5k unit tests without breaking a sweat!

reply
sunshowers
45 minutes ago
[-]
Thanks! BTW you might enjoy setting CARGO_TERM_COLOR=always in your environment :) dtolnay/rust-toolchain does this automatically but it looks like you aren't using that action.
reply
satvikpendem
3 hours ago
[-]
I love nextest, it's been great. This along with bacon catches a lot of issues.
reply
esafak
4 hours ago
[-]
Anybody using this in production?

edit: Thanks, will try!

reply
gdcbe
48 minutes ago
[-]
Yes we use it for rama [1]. You can check its justfile and CI workflow file how we use it. Those run thousands and thousands of tests thx to nextest and what feels like instantly (once compiled).

Large projects build with rama use it as well. But those are proprietary from partners so sadly cannot share those.

[1]: https://github.com/plabayo/rama

reply
tekacs
4 hours ago
[-]
Yes, for a long while – I believe it's fairly widely used (and it's absolutely excellent!)
reply
musicmatze
1 hour ago
[-]
Been using it for years, for opensource stuff and at work. No issues whatsoever.
reply
aabhay
2 hours ago
[-]
Yep. Tokio uses it for their tests in CI as well last I checked.
reply
DennisL123
3 hours ago
[-]
Yes, been using it for 18’ish months. Works great.
reply
merqurio
3 hours ago
[-]
Happy user here !
reply
patates
4 hours ago
[-]
I somehow tried to make sense of the name as a superlative form of "next". Perhaps next-test would have been fine?
reply
sunshowers
3 hours ago
[-]
That is indeed the pun =)
reply
patates
2 hours ago
[-]
Oh, sorry then, thanks for the clarification :)
reply