Безопасны ли тесты свойств Gopter для параллельного использования?
Я использую gopter для тестирования свойств, и я заинтересован в ускорении моих тестовых прогонов путем параллельного запуска независимых тестов.
Я не могу найти никаких ссылок в документации относительно того, безопасно ли звонить на мой тест или нет. Хотя ни один из примеров, которые я нашел, на самом деле не являются тестами, это все автономные консольные приложения.
Например, вот один из моих тестов - безопасно ли добавлять отмеченную строку?
func Test_NetworkSecurityGroup_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
t.Parallel() // Is this safe?
parameters := gopter.DefaultTestParameters()
parameters.MaxSize = 10
properties := gopter.NewProperties(parameters)
properties.Property(
"Round trip from NetworkSecurityGroup to NetworkSecurityGroup via AssignPropertiesToNetworkSecurityGroup & AssignPropertiesFromNetworkSecurityGroup returns original",
prop.ForAll(RunPropertyAssignmentTestForNetworkSecurityGroup, NetworkSecurityGroupGenerator()))
properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
}
У меня нет сбоев, когда
t.Parallel()
вызов присутствует, но я опасаюсь действовать без какой-либо ссылки, указывающей на то, что это может быть безопасно.
1 ответ
t.Parallel()
безопасно использовать, если вы не делитесь каким-либо состоянием или ресурсом, который используете.
вы можете запустить его с помощью теста go с
-parallel
вариант.
-parallel n
Allow parallel execution of test functions that call t.Parallel.
The value of this flag is the maximum number of tests to run
simultaneously; by default, it is set to the value of GOMAXPROCS.
Note that -parallel only applies within a single test binary.
The 'go test' command may run tests for different packages
in parallel as well, according to the setting of the -p flag
(see 'go help build').