Skip to content

Commit 0f85657

Browse files
committed
Merge pull request #268 from mstuttgart/post/python-com-unittest-travis-ci-coveralls-e-landscape-parte-3-de-4
[NEW] Python com Unittest, Travis CI, Coveralls e Landscape (Parte 3 de 4) [skip ci]
2 parents a3fd9ba + 85ff3e5 commit 0f85657

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
Title: Python com Unittest, Travis CI, Coveralls e Landscape (Parte 3 de 4)
2+
Slug: python-com-unittest-travis-ci-coveralls-e-landscape-parte-3-de-4
3+
Date: 2016-05-12 12:41:38
4+
Category: Python
5+
Tags: git, travis-ci, python, coveralls, landscape, test, tutorial
6+
Author: Michell Stuttgart
7+
Email: michellstut@gmail.com
8+
Github: mstuttgart
9+
Linkedin: michellstut
10+
Facebook: michell.stuttgart
11+
Site: http://codigoavulso.com.br
12+
13+
Fala pessoal, tudo bem?
14+
15+
Na [segunda](python-com-unittest-travis-ci-coveralls-e-landscape-parte-2-de-4.html) parte deste tutorial, aprendemos a usar o `Travis CI` para automatizar os testes do nosso projeto, facilitando a manutenção do código quando temos vários colaboradores. Nesta terceira parte, vamos configurar o serviço [Coveralls](https://coveralls.io) para que o mesmo gere relatórios de teste sobre o nosso projeto. Os relatórios são muito úteis quando desejamos verificar o quanto do nosso projeto está coberto por testes, evitando assim que alguma *feature* importante fique de fora. Assim como o `Travis CI`, o `Coveralls` será executado após cada *push* ou *pull request*.
16+
17+
Diferente do tutorial anterior, serei breve sobre o processo de inscrição do `Coveralls`, focando mais no seu uso.
18+
19+
#### Criando uma conta
20+
21+
Antes de começarmos a usar o `Coveralls` precisamos criar uma conta no serviço. Isso pode ser feito [aqui](https://coveralls.io/). O serviço é totalmente gratuíto para projetos *opensource*.
22+
23+
<center>
24+
![](images/mstuttgart/snapshot_17.png)
25+
</center>
26+
27+
Após a inscrição, você será levado para uma nova página com uma listagem dos repositórios que você possui no [Github](https://github.com/).
28+
29+
<center>
30+
![](images/mstuttgart/snapshot_18.png)
31+
</center>
32+
33+
Na imagem acima já podemos visualizar o projeto que estou usando neste tutorial: *codigo-avulso-test-tutorial*. Caso o seu repositório não esteja na lista, clique no botão `ADD REPOS` no canto superior direito da tela.
34+
35+
<center>
36+
![](images/mstuttgart/snapshot_19.png)
37+
</center>
38+
39+
Ao clicar no botão, você será redirecionado a uma página onde é possível slecionar quais repositórios serão analisados pelo `Coveralls`. Caso o repositório desejado não esteja na lista, clique no botão `RE-SYNC REPOS` no canto superior direito. Ele vai realizar o escaneamento do seu perfil no [Github](https://github.com/) e importar seus projetos.
40+
41+
Clique no botão escrito `OFF` ao lado esquerdo do nome do repositório. Isso ativará o serviço para este repositório.
42+
43+
<center>
44+
![](images/mstuttgart/snapshot_20.png)
45+
</center>
46+
47+
Clique no botão `DETAILS` ao lado direito do nome do repositório e você será redirecionado para uma tela de configuração. Aqui o passo mais interessante é pegar a *url* da `badge`para usarmos em nosso *README.md*.
48+
49+
<center>
50+
[![Coverage Status](https://coveralls.io/repos/github/mstuttgart/codigo-avulso-test-tutorial/badge.svg?branch=master)](https://coveralls.io/github/mstuttgart/codigo-avulso-test-tutorial?branch=master)
51+
</center>
52+
53+
Na área superior da tela, temos o seguinte:
54+
55+
<center>
56+
![](images/mstuttgart/snapshot_21.png)
57+
</center>
58+
59+
Clique em `EMBED` e uma janelá de dialogo irá se abrir, selecione e copie o código em `MARKDOWN`.
60+
61+
<center>
62+
![](images/mstuttgart/snapshot_22.png)
63+
</center>
64+
65+
Agora cole o código no cabeçalho do seu arquivo *README.md*, semelhante ao que fizemos com o `Travis CI` no tutorial anterior.
66+
67+
```markdown
68+
# Codigo Avulso Test Tutorial
69+
[![Build Status](https://travis-ci.org/mstuttgart/codigo-avulso-test-tutorial.svg?branch=master)](https://travis-ci.org/mstuttgart/codigo-avulso-test-tutorial)
70+
71+
[![Coverage Status](https://coveralls.io/repos/github/mstuttgart/codigo-avulso-test-tutorial/badge.svg?branch=master)](https://coveralls.io/github/mstuttgart/codigo-avulso-test-tutorial?branch=master)
72+
73+
```
74+
Concluída esta estapa, o próximo passo será adicionarmos o serviço em nosso projeto no `Github`.
75+
76+
#### Adicionando o Coveralls
77+
78+
Vamos adicionar o serviço durante o processo de teste do projeto. Assim, depois de cada *push* ou *pull request*, o `Coveralls` irá gerar o relatório sobre nossos testes.
79+
80+
Abra o arquivo *.travis.yml* em seu editor. Teremos o seguinte código:
81+
82+
```travis
83+
language: python
84+
85+
python:
86+
- "2.7"
87+
88+
sudo: required
89+
90+
install:
91+
- pip install flake8
92+
93+
before_script:
94+
- flake8 codigo_avulso_test_tutorial
95+
96+
script:
97+
- run setup.py test
98+
99+
```
100+
Agora vamos alterá-lo adicionando a funcionalidade do `Coveralls`. O códio atualizado do *.travis.yml* pode ser visto a seguir:
101+
102+
```travis
103+
language: python
104+
105+
python:
106+
- "2.7"
107+
108+
sudo: required
109+
110+
install:
111+
- pip install flake8
112+
- pip install coveralls
113+
114+
before_script:
115+
- flake8 codigo_avulso_test_tutorial
116+
117+
script:
118+
- coverage run --source=codigo_avulso_test_tutorial setup.py test
119+
120+
after_success:
121+
- coveralls
122+
123+
```
124+
* `install`: aqui adicionamos o comando `pip install coveralls`. A instalação do `coveralls` é necessaria para que possamos gerar os relatórios. Obs.: Você pode instalá-lo em sua máquina e gerar relátorios em html. Fica a sugestão de estudo.
125+
* `script`: aqui substimuímos o comando `run setup.py test` por `coverage run --source=codigo_avulso_test_tutorial setup.py test`. Esse comando executa os mesmo testes de antes, mas já prove um relatório sobre a cobertura de testes do seu código.
126+
* `after_success`: a última alteração foi adicionar a tag `after_success`. Essa tag indica que após a execuação bem sucedida dos testes, deve-se iniciar o serviço de analise do `Coveralls`.
127+
128+
Assim que terminar de fazer essas alterações você já pode enviar o seu código para o `Github`. Assim que subir o código, o `Travis CI` irá iniciar o processo de teste. Finalizando os testes, o `Coveralls`será iniciado. Se tudo ocorrer bem, a badge que adicionamos no aquivo README do projeto será atualizada exibindo a porcentagem do nosso código que está coberta por testes. Você pode clicar na badge ou ir até o seu perfil no site do [Coveralls](https://coveralls.io) e verificar com mais detalhes as informações sobre seu projeto.
129+
130+
<center>
131+
![](images/mstuttgart/snapshot_23.png)
132+
</center>
133+
134+
Na seção `LATEST BUILDS` clique no último build disponível que será possível verificar a porcentagem cobertura de teste para cada arquivo do seu projeto.
135+
136+
Caso tenha interessa, aqui está o link do repositorio que usei para esse tutorial: [codigo-avulso-test-tutorial](https://github.com/mstuttgart/codigo-avulso-test-tutorial).
137+
138+
#### Conclusão
139+
140+
Aqui encerramos a terceira parte do nossa série de tutoriais sobre `Unittest`. O `Coveralls` ainda possui muitas configurações não mostradas aqui, então se você se interessar, fica a sugestão de estudo. No próximo tutorial veremos como utilizar o `Landscape`, um *linter* que analise nossos códigos atrás de problemas de sintaxe, formatação e possíveis erros de códigos (variáveis não declaradas, varíaveis com escopo incorreto e etc).
141+
142+
É isso pessoal. Obrigado por ler até aqui e até o próximo tutorial!
143+
144+
**Publicado originalmente:** [python-com-unittest-travis-ci-coveralls-e-landscape-parte-3-de-4](http://codigoavulso.com.br/python-com-unittest-travis-ci-coveralls-e-landscape-parte-3-de-4.html)

0 commit comments

Comments
 (0)