Eu tenho um aplicativo Pylons 1.0 com um monte de testes no diretório test / funcional. Estou obtendo resultados de teste estranhos e quero apenas executar um único teste. A documentação do nariz diz que eu devo passar um nome de teste na linha de comando, mas recebo ImportErrors, não importa o que eu faça
Por exemplo:
nosetests -x -s sometestname
Dá:
Traceback (most recent call last):
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
module = resolve_name(addr.module)
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Eu recebo o mesmo erro por
nosetests -x -s appname.tests.functional.testcontroller
Qual é a sintaxe correta?
appname.tests.functional.test_controller.name_of_test_method
.module.path:ClassNameInFile.method_name
, isto é, com dois pontos separando o caminho do módulo / arquivo e os objetos no arquivo.module.path
é o caminho relativo para o arquivo (por exemplomy_tests.py:ClassNameInFile.method_name
), não é o caminho que você usaria em umaimport
declaraçãoPara mim, usando o Nosetests 1.3.0, essas variantes estão funcionando (mas verifique se você tem
__init__.py
na sua pasta de testes):Observe que dois pontos únicos entre o nome do módulo e o nome da classe.
fonte
Eu tenho que adicionar a extensão de arquivo ".py", ou seja,
Talvez seja porque eu não tenho nenhuma classe no arquivo. Sem o
.py
nariz, estava reclamando:E isso, embora eu tenha um
__init__.py
na pasta/path_to/
.fonte
Eu escrevi este pequeno script, com base nas respostas anteriores:
fonte
O seguinte funcionou para mim muito bem:
Observe que meus testes não estão em uma classe. Os métodos de teste estavam em um único arquivo.
fonte