suite: Multiple test runs
Summary
Added ability to run tests multiple times with a single SetupSuite and TearDownSuite
Changes
Running go test now accepts flag testify.c which defines how many times we want each test to run Modified tests that expect the test to run only once
Motivation
Previously the method to run multiple tests was using flag -test.count or -count. The problem with that is that SetupSuite is called multiple times, and if it takes a long time to complete then the tests will also take a long time. Since these tests are all in the same test suite, they should be able to reuse the same SetupSuite.
As an example, running go test -count=10 completes in about 15.5s and running go test -testify.c=10 completes in about 8.9s, halving the time to complete.
Related issues
#1154