What actually makes a test flaky?
Why an error and a failure are different test results, and why that matters when you call a test flaky.
Why an error and a failure are different test results, and why that matters when you call a test flaky.
Five mistakes I kept making with integration tests, from writing too many to leaving artifacts behind.
Right in the middle of relaunching this blog, every pull request started failing in about two seconds. No logs. No error message worth reading. The jobs never got a machine. The reason was boring: I’d hit my GitHub Actions usage limit. I was working through lots of small issues across my personal projects, each one its own pull request, and every pull request ran the full CI pipeline. I wasn’t thinking about CI minutes at all, because I’ve never had to do that in the past. ...
Why NUnit’s constraint assertion model gives you better failure messages than the classic model.
Pair NUnit’s TestCaseData with TestCaseSource to move setup out of your tests and document each case.
Use a .runsettings file and TestContext.Parameters to pass configuration into NUnit integration tests without config-file templating.
A closer look at TestContext.CurrentContext in NUnit: the current test, its result, working directories and the Randomizer.
A tour of NUnit’s TestContext static properties and methods: output, errors, progress, parameters, formatters and attachments.
Write and run your first NUnit unit test in C#, from installing the packages to reading the results.
Fourteen books on software testing I picked to build my testing library, and why two of them went to the top.