Este é o comando py.test-2.7 que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
pytest - uso de pytest
CHAMANDO PY.TESTE ATRAVÉS PITÃO -M PY.TESTE
Novo na versão 2.0.
Se você usar Python-2.5 ou posterior, você pode invocar o teste por meio do interpretador Python de
a linha de comando:
python -m pytest [...]
Isso é equivalente a invocar o script de linha de comando py.teste [...] diretamente.
OBTENDO AJUDA ON VERSÃO, OPÇÃO NOMES, MEIO AMBIENTE VARIÁVEIS
py.test --version # mostra de onde pytest foi importado
py.test --fixtures # mostra os argumentos da função integrada disponíveis
py.test -h | --help # show help on linha de comando e opções de arquivo de configuração
PARANDO APÓS A PRIMEIRO (OU N) FALHAS
Para interromper o processo de teste após as primeiras (N) falhas:
py.test -x # stop após a primeira falha
py.test --maxfail = 2 # parar após duas falhas
ESPECIFICANDO TESTES / SELECIONANDO TESTES
Várias opções de execução de teste:
py.test test_mod.py # executa testes no módulo
py.test somepath # executa todos os testes abaixo de somepath
py.test -k stringexpr # apenas executa testes com nomes que correspondem ao
# "expressão de string", por exemplo, "MinhaClasse e não método"
# selecionará TestMyClass.test_something
# mas não TestMyClass.test_method_simple
py.test test_mod.py::test_func # executa apenas testes que correspondem ao "ID do nó",
# eg "test_mod.py::test_func" irá selecionar
# apenas test_func em test_mod.py
py.test test_mod.py::TestClass::test_method # executa um único método em
# uma única classe
Importe 'pkg' e use a localização do sistema de arquivos para encontrar e executar testes:
py.test --pyargs pkg # executa todos os testes encontrados abaixo do diretório do pypkg
MODIFICANDO PITÃO RASTREAMENTO IMPRESSÃO
Exemplos para modificar a impressão de traceback:
py.test --showlocals # mostra variáveis locais em tracebacks
py.test -l # mostra variáveis locais (atalho)
py.test --tb = long # a formatação de traceback informativa padrão
py.test --tb = native # a formatação da biblioteca padrão do Python
py.test --tb = short # um formato de traceback mais curto
py.test --tb = linha # apenas uma linha por falha
QUEDA TO PDB (PITÃO DEBUGADOR) ON FALHAS
Python vem com um depurador Python embutido chamado PDB. pergunta permite que alguém caia em
da PDB prompt por meio de uma opção de linha de comando:
py.test --pdb
Isso invocará o depurador Python em cada falha. Freqüentemente, você pode querer apenas fazer
isso para o primeiro teste de falha para entender uma determinada situação de falha:
py.test -x --pdb # solta no PDB na primeira falha e encerra a sessão de teste
py.test --pdb --maxfail = 3 # drop to PDB para as três primeiras falhas
Observe que em qualquer falha, as informações de exceção são armazenadas em sys.last_value,
sys.last_type e sys.last_traceback. No uso interativo, isso permite entrar em
depuração post-mortem com qualquer ferramenta de depuração. Também é possível acessar manualmente a exceção
informações, por exemplo:
>>> import sys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError ('assert result == "ok"',)
DEFINIÇÃO A PONTO DE INTERRUPÇÃO / AKA SET_TRACE ()
Se você deseja definir um ponto de interrupção e insira o pdb.set_trace () você pode usar um ajudante:
importar pytest
def test_function ():
...
pytest.set_trace () # invoca o depurador PDB e rastreamento
Antes da versão 2.0.0 do pytest, você só podia inserir PDB rastrear se você desativou a captura
na linha de comando via py.teste -s. Em versões posteriores, o pytest desativa automaticamente seu
captura de saída quando você entra PDB rastreamento:
· A captura de saída em outros testes não é afetada.
· Qualquer saída de teste anterior que já foi capturada e será processada como tal.
· Qualquer saída posterior produzida no mesmo teste não será capturada e, em vez disso, obterá
enviado diretamente para sys.stdout. Observe que isso é verdadeiro mesmo para a saída de teste ocorrendo
depois de sair do interativo PDB sessão de rastreamento e continue com o teste regular
executar.
Desde o pytest versão 2.4.0, você também pode usar o Python nativo importar pdb; pdb.set_trace ()
ligue para entrar PDB rastrear sem ter que usar o pytest.set_trace () invólucro ou
desabilitar explicitamente a captura de saída de pytest via py.teste -s.
PERFIL TESTE EXECUÇÃO DURAÇÃO
Para obter uma lista das 10 durações de teste mais lentas:
py.test --durations = 10
CRIANDO JUNITXML FORMATO ARQUIVOS
Para criar arquivos de resultados que podem ser lidos por Hudson ou outra integração contínua
servidores, use esta invocação:
py.test --junitxml = caminho
para criar um arquivo XML em caminho.
record_xml_property
Novo na versão 2.8.
Se você deseja registrar informações adicionais para um teste, você pode usar o record_xml_property
fixação:
def test_function (record_xml_property):
record_xml_property ("example_key", 1)
afirmar 0
Isso irá adicionar uma propriedade extra exemplo_chave = "1" para o gerado caso de teste etiqueta, rótulo, palavra-chave:
AVISO:
Este é um recurso experimental e sua interface pode ser substituída por algo mais
poderoso e geral em versões futuras. A funcionalidade em si será mantida,
no entanto.
Atualmente não funciona quando usado com o pytest-xdist plugin.
Observe também que o uso desse recurso interromperá qualquer verificação de esquema. Esse
pode ser um problema quando usado com alguns servidores de CI.
CRIANDO RESULTADO FORMATO ARQUIVOS
Para criar arquivos de resultados de texto simples legíveis por máquina, você pode emitir:
py.test --resultlog = caminho
e olhe para o conteúdo no caminho localização. Esses arquivos são usados, por exemplo, pelo Teste PyPy
página da web para mostrar os resultados dos testes em várias revisões.
ENVIANDO TESTE RELATÓRIO TO ONLINE PASTEBINA SERVIÇO
Criar a URL for cada teste falha:
py.test --pastebin = falhou
Isso enviará informações de execução de teste a um serviço de colagem remoto e fornecerá um URL para cada
fracasso. Você pode selecionar os testes normalmente ou adicionar, por exemplo -x se você só quer enviar um
falha particular.
Criar a URL for a inteiro teste Sessão log:
py.test --pastebin = all
Atualmente, apenas colando no http://bpaste.net serviço é implementado.
DESATIVANDO PLUGINS
Para desativar o carregamento de plug-ins específicos no momento da invocação, use o -p opção junto com
o prefixo não:.
Exemplo: para desativar o carregamento do plugin teste médico, que é responsável por executar doctest
testes de arquivos de texto, invoque py.test assim:
py.test -p no: doctest
CHAMANDO PY.TESTE A PARTIR DE PITÃO CÓDIGO
Novo na versão 2.0.
Você pode invocar pergunta do código Python diretamente:
pytest.main ()
isso age como se você chamasse "py.test" da linha de comando. Não vai aumentar
SystemExit mas retorne o código de saída. Você pode passar opções e argumentos:
pytest.main (['- x', 'mytestdir'])
ou passe uma string:
pytest.main ("- x mytestdir")
Você pode especificar plug-ins adicionais para pytest.main:
# conteúdo de myinvoke.py
importar pytest
classe MyPlugin:
def pytest_sessionfinish (self):
imprimir ("*** finalização do relatório de execução de teste")
pytest.main ("- qq", plugins = [MyPlugin ()])
Executá-lo mostrará que MeuPlugin foi adicionado e seu gancho foi invocado:
$ python meuinvoke.py
*** finalização do relatório de execução de teste
Use py.test-2.7 online usando serviços onworks.net