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

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