-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathphpunit.sh
executable file
·46 lines (34 loc) · 1.42 KB
/
phpunit.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
CONFIGURATION_FILE='phpunit.xml'
PHPUNIT_LOG_FILE=/tmp/phpunit-log.txt
# Guardando inicio da execucao dos testes
start_time=$(date +%s)
# Executando os testes, jogando saida dos testes em arquivo temporario
# Guardando o retorno do PHPUnit em variavel
echo -e "\nExecutando testes"
./vendor/bin/phpunit \
--configuration "$CONFIGURATION_FILE" \
--coverage-text \
--colors=never \
--testsuite Auth,Feature \
"$@" | tee $PHPUNIT_LOG_FILE
# --filter testLoginContaInstitucional tests/AuthGraphqlRequestTest.php \
RETORNO=$((PIPESTATUS[0]))
# Extraindo do arquivo o % de cobertura de código
COVERAGE=$(grep -E '^\s*Lines:\s*\d+.\d+\%' $PHPUNIT_LOG_FILE | grep -Eo '[0-9\.]+%' | tr -d '%')
end_time=$(date +%s)
# Calculando e exibindo duração dos testes
echo -e "\n\nDuracao dos testes: $((end_time - start_time))s."
if [ "$RETORNO" -ne 0 ]; then
echo -e "Falha nos testes do PHP Unit!"
else
echo -e "Cobertura de código mínima: ${MINIMUM_CODE_COVERAGE}%."
echo -e "Cobertura de código: ${COVERAGE}%."
if (( ! $(echo "$COVERAGE > $MINIMUM_CODE_COVERAGE" | bc -l) )); then
echo -e "Percentual minimo de cobertura de codigo nao atingida: ${MINIMUM_CODE_COVERAGE}%."
echo -e "Falha no percentual minimo de cobertura de codigo!"
exit 1
fi
fi
echo -e "\nConfira a pasta 'coverage' para relatorio de cobertura de codigo, abrir index.html com o navegador"
exit "$RETORNO"