Безопасны ли тесты свойств 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').
Другие вопросы по тегам