Closed mstuttgart closed 8 years ago
@luzfcb por nada. Eu que agradeço a oportunidade!
Sobre a sua dica, muito bacana! Eu não sabia que era possível excluir um commit específico. Essa dica é daquele tipo de ajuste que você percorre a net toda pra achar e não encontra.
Tem uma configuração que descobri recentemente, que é muito útil para quando você deseja rodar o Travis CI
em uma aplicação contruída em PyQt/PySide. Sem ela os testes dão errado.
https://github.com/pynocchio/pynocchio-comic-reader/blob/develop/.travis.yml#L16
Nos tutoriais que estou enviando, meu objetivo é deixar o uso dos serviços o mais simples possível, para quem nunca os usou não se perder. Futuramente, pretendo fazer um post com essas dicas de configuração do Travis CI
, Coveralls
e Landscape
e , se você não se importar, gostaria de adicionar a sua dica (com os devidos créditos, é claro).
Nas minhas aplicações Django, para resolver esse mesmo problema eu uso PyVirtualDisplay
implementação PyVirtualDisplay + Splinter + StaticLiveServerTestCase
# -*- coding: utf-8 -*-
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from pyvirtualdisplay import Display
from splinter.browser import Browser
class SplinterStaticLiveServerTestCase(StaticLiveServerTestCase):
splinter_driver = 'firefox'
virtual_display_size = (1024, 768)
use_virtual_display = True
@classmethod
def setUpClass(cls):
super(SplinterStaticLiveServerTestCase, cls).setUpClass()
if cls.use_virtual_display:
cls.virtual_display = Display(visible=0, size=cls.virtual_display_size)
cls.virtual_display.start()
cls.browser = Browser(cls.splinter_driver)
cls.browser.driver.maximize_window()
@classmethod
def tearDownClass(cls):
super(SplinterStaticLiveServerTestCase, cls).tearDownClass()
cls.browser.quit()
if cls.use_virtual_display:
cls.virtual_display.stop()
a versão para unittest puro, fica assim
# -*- coding: utf-8 -*-
class TestCaseWithVirtualDisplay(unittest.TestCase):
virtual_display_size = (1024, 768)
use_virtual_display = True
@classmethod
def setUpClass(cls):
super(TestCaseWithVirtualDisplay, cls).setUpClass()
if cls.use_virtual_display:
cls.virtual_display = Display(visible=0, size=cls.virtual_display_size)
cls.virtual_display.start()
@classmethod
def tearDownClass(cls):
if cls.use_virtual_display:
cls.virtual_display.stop()
@luzfcb show de bola! Vou dar uma estudada no PyVirtualDisplay!.
depois de instalar o pacote PyVirtualDisplay, a unica preocupação que tenho é ter certeza que xvfb
está instalado.
sobre serviços uteis, eu também gosto do https://requires.io . Ele me ajuda bastante quando tenho que atualizar as versões das dependências do https://github.com/pydanny/cookiecutter-django
um outro cara que promete é o https://pyup.io/ : https://github.com/pyupio/pyup (ainda está em beta fechado)
Ele manda um pull-request automagicamente contendo a atualização da biblioteca e o change log... veja um exemplo: https://github.com/pyupio/pyup/pull/45
Se um pull-request de atualização da mesma biblioteca foi mandado anteriormente, ele fecha o pull-request anterior em favor do novo...
Bacana, não conhecia esses serviços. Vou usar o requires.io
nos meus projetos. Vale até a pena fazer um mini tutorial sobre eles.
@mstuttgart valeu novamente.
Ah, não sei se vc vai falar, mais uma funcionalidade útil de travis é a possibilidade de você explicitamente falar para o travis não rodar os testes em um commit ou merge
para isso, basta colocar na mensagem de commit ou merge o texto:
[ci skip]
https://docs.travis-ci.com/user/customizing-the-build/#Skipping-a-build