Valuable Information From TestResults

In the following example, I will show how to get meaningful information from tests. All examples are written in C# (.NET 4.0) and use NUnit 2.6.2 and TeamCity 8.0.

For all tests, the same system under test is used – to keep it simple, I just wrote one simple method. This method is used for all tests.

The basic idea is to create a CultureInfo from a string. As test input data, a list of strings is used.

The poor’s man approach – Execute all tests in a loop

This is the simplest way to do it: use a foreach-loop and fail if one or more tests are failing.




In this case, no information is available which test(s) were failing. A small improvement is to use NUnit’s overload methods of the Assert.Fail(), Assert.IsTrue() etc methods where a string can be provided:



One test per item – TestCaseSource

From NUnit 2.5, it is possible to use the TestCaseSource attribute. With this mechanism, a test is executed n times. 

In our example, you see that there are 24 items, and 3 of them fail:




If a test cannot be executed n times within the same session, the test has to be executed once in n sessions (loop of tests). A typical reason might be if a test relies on a value of a configuration file.

Execute single tests in a loop

Since the tests are executed in a loop outside of NUnit, only one test is visible in NUnit GUI:


In TeamCity, the same MSBuild code is executed 24 times, each run with one test.


As a summary, have a look at TeamCity’s output for all 4 variations:





Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s