matkoch / TestFx

Next Level Testing.
Apache License 2.0
34 stars 4 forks source link

Parallelizing tests through agents #13

Open matkoch opened 7 years ago

matkoch commented 7 years ago

Parallelizing tests is usually done by passing only a set of all test assemblies, or filtering them by namespace. I propose a different approach invoked by:

TestFx.exe  --assemblies A.dll B.dll --agent-count 3 --agent-instance 1
TestFx.exe  --assemblies A.dll B.dll --agent-count 3 --agent-instance 2
TestFx.exe  --assemblies A.dll B.dll --agent-count 3 --agent-instance 3

Every invocation gets the full list of assemblies. Internally, all tests get sorted by name, optionally randomized using an external seed.

The execution is then defined by taking every (#AgentInstance - 1) + 3 * n test from all tests.

matkoch commented 7 years ago

Problem

Test suites with excessive setup/cleanup code. Separating them, will drastically increase execution time.

Possible solutions