sunny;11479 wrote:Thanks,
One "processing thread/worker" executes the tests in the a "test task/group" in sequence. Parallelism is achieved by multiple "processing threads".
Correct.
sunny;11479 wrote:
If there is a test fixture with 10 tests in it, and the setup of the fixture sets some instance field, which different tests change, if these tests are split between different tasks, each task will have it's own instance of the fixture, so the tests in different tasks will use their own "shared" field. (not talking about external or static resource)
Correct. This is an important consideration for fixtures containing tests that must be run in the same fixture and in a specific sequence. Where this exists, you definitely want to use AtomicAttribute.
sunny;11479 wrote:
"Atomic" will cause a whole fixture to be scheduled in it's own "task", so the tests in that fixture are in their own "task".
Yes and no. When a fixture is 'Atomic', its tests cannot be separated from the fixture or from each other, so they are always placed in the same task. However, this task does not need to be limited to just the atomic fixture. It's legal for this task to also contain other tests. If you need the fixture and its tests to be run in complete isolation in their own process, you can use NCrunch.Framework.IsolatedAttribute.