Несколько тестовых прогонов дают один окончательный результат для пройденных неудачных тестов - PullRequest
0 голосов
/ 07 марта 2020

Я выполняю интеграционные тесты, написанные в Go, инициированные из файла bash, как мы видим в файле bash, я запускаю два независимых прогона для двух профилей. Я хотел бы иметь возможность запускать это в значительной степени, как есть, но общий результат неудачных и пройденных тестов будет напечатан внизу, а не вдвое больше, чем сейчас. Как бы я go в лучшем случае достигнул этого?

TestListNetworks() {
  echo "TestListNetworks tests..."
    local CVN_PID=$(StartCVN "vrrp")
    LoadData "listNetworks.sql"
    ./cloud-volumes-network-client "--profile=listNetworks" | formatOutput
    local status=$?
    Flush
    kill -9 $CVN_PID
    exitCodes+=($status)
}

TestInfrastructure() {
  echo "TestInfrastructure tests..."
    local CVN_PID=$(StartCVN "vrrp")
    ./cloud-volumes-network-client "--profile=infrastructure" | formatOutput
    local status=$?
    kill -9 $CVN_PID
    exitCodes+=($status)
}

# running tests synchronously
TestListNetworks
TestInfrastructure

for exitCode in "${exitCodes[@]}"; do
  if [ "$exitCode" -eq "1" ]; then
      echo "Integration tests failed"
      exit "$exitCode"
  fi
done

Это работает, как и ожидалось, и выходные данные из этих тестовых файлов будут

docker run --rm --name integration-tests -t integration-tests-container
nohup: appending output to 'nohup.out'
waiting for sql...
mysqld is alive

=======================| Running integration tests |=======================
TestListNetworks tests...
    PASSED - TestNoFilter
    PASSED - TestAccountFilter
    PASSED - TestRemoteAccountFilter
    PASSED - TestRemoteAccountAndAccountFilter
    PASSED - TestNetworkUUIDNotFound
    PASSED - TestNetworkUUIDSFound

Failed tests: 0
Successful tests: 6
Skipped tests: 0
No regressions discovered
TestInfrastructure tests...
    PASSED - TestCreateServiceSwitch
    PASSED - TestCreateBorderSwitch
    PASSED - TestCreateBorderSwitchPairSameHost
    PASSED - TestCreateBorderSwitchPair
    PASSED - TestCreateLag
    PASSED - TestListServiceSwitches
    PASSED - TestListBorderSwitches
    PASSED - TestListLags
    PASSED - TestDescribeServiceSwitch
    PASSED - TestDescribeLag
    PASSED - TestUpdateServiceSwitch
    PASSED - TestUpdateBorderSwitch
    PASSED - TestPatchLag
    PASSED - TestDeleteServiceSwitch
    PASSED - TestDeleteLag
    PASSED - TestDeleteBorderSwitch

Failed tests: 0
Successful tests: 16
Skipped tests: 0
No regressions discovered

Если я попытаюсь запустить все тесты в при одном запуске тесты не пройдены, потому что я не вызываю команды flush и kill -9 $CVN_PID. Как я могу запустить это за один раз, и грипп sh и убивать процессы по мере необходимости.

...