Я выполняю интеграционные тесты, написанные в 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 и убивать процессы по мере необходимости.