Currently we run a separate go command for every found package. The go command supports multiple packages being passed. For example:
go test . ./assert ./mock
Will run tests against the current directory, the 'assert' directory and the 'mock' directory.
The go command itself is far more efficient when running than we can be by running it once for each package, even if we run it in parallel.
We should, instead, pass a list of paths to the go command and let it handle everything else. This means we will need a different way to detect progress, success and failure. Most likely reading up to each newline and doing some parsing.
Currently we run a separate go command for every found package. The go command supports multiple packages being passed. For example:
go test . ./assert ./mock
Will run tests against the current directory, the 'assert' directory and the 'mock' directory.
The go command itself is far more efficient when running than we can be by running it once for each package, even if we run it in parallel.
We should, instead, pass a list of paths to the go command and let it handle everything else. This means we will need a different way to detect progress, success and failure. Most likely reading up to each newline and doing some parsing.