Well, as far as Nunit 2.x is concern, you can run tests in parallel by distributing tests among different assembly and execute those assemblies in parallel
In case of Nunit 3.x and more, you can use Parallelizable Attribute to execute tests in parallel. The framework creates worker threads for running tests in parallel.
It uses queues organized into shifts. A WorkShift consist of queues of work iteams. NUnit runs one WorkShift until all available work is done and switches to the next shift. When all work is completed from all shifts, execution is completed.
Here are the shifts listed with their associated queues.
Shift |
Queues |
Workers |
Usage |
Parallel Shift |
Parallel Queue |
LoP* |
Parallelizable tests run in the MTA |
|
Parallel STA Queue |
1 |
Parallelizable tests run in the STA |
Non-Parallel Shift |
Non-Parallel Queue |
1 |
Non-parallelizable tests run in the MTA |
Non-Parallel STA Shift |
Non-Parallel STA Queue |
1 |
Non-parallelizable tests run in the STA
|
Hope that helps.