fga-eps-mds/2022-2-BOTO

View on GitHub
docs/Codecov_e_Coveralls.md

Summary

Maintainability
Test Coverage
## O que 茅 o Codecov
 
- 脡 uma ferramenra que mede a cobertura de testes do nosso c贸digo. Desta forma, mostra quais m茅todos e instru莽玫es no c贸digo n茫o s茫o testados;
- Ele est谩 dispon铆vel para tr锚s reposit贸rios compat铆veis com o CodeBuild: GitHub, itHub Enterprise Server e Bitbucket;
 
### Como integrar o Codecov com o nosso projeto?
 
1. Ir para https://codecov.io/signup e cadastrar em um reposit贸rio de origem GitHub;
2. No Codecov adicionar o nosso reposit贸rio;
3. Quando as informa莽玫es de token forem exibidas, escolher "Copy";
4. Adicionar o token copiado como uma vari谩vel de ambiente chamada `CODECOV_TOKEN` ao nosso projeto de compila莽茫o;
5. Criar um arquivo de texto chamado `my_script.sh` no reposit贸rio, depois inserir o arquivo:
 
``````
#/bin/bash
bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
``````
6. Como nosso projeto 茅 em Python, seguimos os comandos:
 
``````
build:
- pip install coverage
- coverage run -m unittest discover
postbuild:
- echo 'Connect to CodeCov'
- bash my_script.sh
``````
7. Ap贸s executar uma compila莽茫o do projeto, um link para relat贸rios do Codecov gerados para o porjeto aparece em `logs de compila莽茫o`, usaremos esse link para visiualizar os relat贸rios do Codecov
8. As informa莽玫es nos logs ficam assim:
 
```````
[Container] 2023/01/12 16:31:04 Running command bash my_script.sh
 
_____ _
/ ____| | |
| | ___ __| | ___ ___ _____ __
| | / _ \ / _` |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| | __/ (_| (_) \ V /
\_____\___/ \__,_|\___|\___\___/ \_/
Bash-20200303-bc4d7e6
 
路[0;90m==>路[0m AWS CodeBuild detected.
... The full list of Codecov log entries has been omitted for brevity ...
路[0;32m->路[0m View reports at 路[0;36mhttps://codecov.io/github/user/test_py/commit/commit-id路[0m
 
[Container] 2020/03/09 16:31:07 Phase complete: POST_BUILD State: SUCCEEDED
```````
 
## O que 茅 Coveralls
 
- Tamb茅m 茅 uma ferramenta de testes como o Codecov que gera relat贸rios sobre os testes do nosso projeto. Agora vamos ver uma forma de executar os testes localmente, com o conjunto de comandos que mostrarei abaixo:
 
### Instala莽a玫
 
``````
pip install coveralls
``````
 
> Ap贸s a instala莽茫o do m贸dulo, se criar谩 um script de linha de comando chamado `coverage`, para a vers茫o 2.7 do Python podemos utilizar o comando `coverage` ou `coverage2`, para a vers茫o 3 `coverage3`.
 
### Gerando relat贸rios
 
``````
coverage run --source=nomedopacote setup.py test
``````
> esse comando ir谩 coletar dados do c贸digo fonte, mas caso usemos o reposit贸rio, serua por exemplo:
 
``````
coverage run --source=codigo_no_rep setup.py test
``````
 
> executando o comando `ls -la` no terminal, veremos o arquivo `.coverage`, ele cont茅m informa莽玫es sobre o nosso c贸digo.
 
``````
coverage report
``````
 
> Com esse comando, um relat贸rio com a porcentagem de cobertura de testes de cada arquivo de c贸digo fonte ser谩 exibido no terminal. Das colunas exibidas, podemos extrair:
 
> Smts: indica o total de trechos do c贸digo que devem ser testados.
 
> Miss: coluna que indica quantos trechos do c贸digo ainda n茫o est茫o sob testes.
 
> Cover: indica a porcentagem de cobertura de testes do arquivo fonte.
 
> Em `TOTAL`temos a porcentagem da cobertura total dos testes, conseguir uma porcentagem perto de 80% 茅 satisfat贸rio para o Coveralls.