Tentei usar a norecursedirs
opção dentro do setup.cfg para dizer ao py.test para não coletar testes de certos diretórios, mas parece que ele o ignora.
[tool:pytest]
norecursedirs=lib/third
Quando eu corro py.test
, vejo como ele faz testes de dentro lib/third
!
python
unit-testing
pytest
Sorin
fonte
fonte
py.test
e ospytest
dois executamos testes e sendo bestas diferentes. Estranho, maspytest
é o que está falhando porque não carrega as exclusões de[pytest]
.pytest
é do logilab. Você querpy.test
.nosecuredirs=lib/third/*
[pytest] norecursedirs = resources
empytest.ini
faz um truque! 💪Respostas:
py.test --ignore=somedir
trabalhou para mimfonte
--ignore
pode ser especificado várias vezes para ignorar vários diretórios-k
opção como mostra outra resposta abaixo. Consulte "Executar testes por expressões de palavra-chave" em docs.pytest.org/en/latest/… . As marcas também podem ser úteis aqui. Marque seus testes como "lentos", etc e, em seguida, use-k "not slow"
--ignore-glob
a ignorar caminhos de arquivo de teste baseados em Unix wildcards de estilo concha. Por exemplo,--ignore-glob=**/sandbox/*
irá ignorar todos os arquivos em qualquersandbox
pasta.Se você tiver vários diretórios com pais diferentes, poderá especificar
--ignore
parâmetros diferentes :py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
fonte
Resolvi o mistério: se uma seção pytest for encontrada em um dos arquivos de configuração possíveis (
pytest.ini
,tox.ini
esetup.cfg
), o pytest não procurará por nenhum outro, portanto, certifique-se de definir as opções de py.test em um único arquivo.Eu sugeriria usar
setup.cfg
.fonte
setup.cfg
? A documentação atual parece recomendar os outros dois.ini
arquivo, será necessário especificá-lopytest -c pytest.ini
. por algum motivo, ossetup.cfg
conteúdos foram coletados automaticamente.Você pode usar
py.test -k 'not third'
que exclui todo o conteúdo do 'terceiro' diretório.
fonte
norecursedirs
Deveria trabalhar. Verifique se você possui um pytest.ini ou outros arquivos setup.cfg. Como você está invocandopy.test
?fonte
setup.cfg
com o próprio[pytest]
e norecorsedirs dentro, mas parece ser ignorado e, em vez disso, procurará todos os arquivos.No meu caso, o problema era o caractere curinga ausente. O seguinte funciona para mim:
considerando que simplesmente
norecursedirs = subpath
não o fez.fonte
Se estiver usando setup.cfg, você deve usar
[tool:pytest]
conforme http://doc.pytest.org/en/latest/example/pythoncollection.htmlfonte
Para usar
pytest.ini
(o que é recomendado, a menos que você esteja usandotox
, nesse casotox.ini
faria sentido), chamepytest
compytest -c pytest.ini
.A fim de evitar que o meu amostra
not_me_1.py
enot_me_2.py
de ser testados ou linted, meuspytest.ini
é a seguinte:fonte