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.

August 20, 2018 · 2 min · James Penning

Top 5 pitfalls writing integration tests

Five mistakes I kept making with integration tests, from writing too many to leaving artifacts behind.

March 12, 2018 · 7 min · James Penning

My blog's CI runs on my home PC now

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. ...

October 27, 2026 · 6 min · James Penning

NUnit's classic vs. constraint assertion models

Why NUnit’s constraint assertion model gives you better failure messages than the classic model.

May 14, 2018 · 4 min · James Penning

TestCaseData with TestCaseSource to better organize your tests

Pair NUnit’s TestCaseData with TestCaseSource to move setup out of your tests and document each case.

January 15, 2018 · 6 min · James Penning

Using .runsettings to configure your NUnit tests

Use a .runsettings file and TestContext.Parameters to pass configuration into NUnit integration tests without config-file templating.

December 7, 2017 · 6 min · James Penning

Overview of the TestContext in NUnit. Part 2: CurrentContext

A closer look at TestContext.CurrentContext in NUnit: the current test, its result, working directories and the Randomizer.

November 9, 2017 · 7 min · James Penning

Overview of the TestContext in NUnit. Part 1: Static properties and methods

A tour of NUnit’s TestContext static properties and methods: output, errors, progress, parameters, formatters and attachments.

November 7, 2017 · 6 min · James Penning

Getting started with NUnit

Write and run your first NUnit unit test in C#, from installing the packages to reading the results.

October 27, 2017 · 6 min · James Penning

My software testing reading list

Fourteen books on software testing I picked to build my testing library, and why two of them went to the top.

October 20, 2017 · 4 min · James Penning