from modelo.cliente import Cliente
from ..modelo.cliente import Cliente
from ...modelo.cliente import ClienteParent module " " not loaded cannot perform relative importif __name__ == "__main__":
unittest.main()
Eu tenho a suite de teste de cada classe de modelo, e nos testes de cada uma importo o modelo e testo o seu comportamento, e no final coloco:
if __name__ == "__main__":
unittest.main()
Assim precisaria importar os modelos de outro nível para poder executar os testes com o comportamento esperado.
-- []'s Junior Polegato
---modelo
---testes
--------test_modelo1
--------test_modelo2from modelo.nome_modelo import Classe_ModeloOk, ter um modelo que tem o próprio teste dele na classe?Ou tipo, tem os modelos e os arquivos de teste na mesma pasta dos modelos, e assim poder importar dos testes os modelos de um mesmo nível..Estou usando a última opção, adicionando o caminho do projeto ao path dos testes e de lá importando os modelos , já que estarão disponíveis no escopo, ai faço.Estrutura :Projeto---modelo
---testes
--------test_modelo1
--------test_modelo2Ai uso dentro do test_*from modelo.nome_modelo import Classe_Modelo
Então, o correto seria ter o arquivo __init.py__ dentro
de testes, aí em cada test_*.py fazer um dos imports:
import modelo
from modelo import cliente
from modelo.cliente import Cliente
E depois executar na pasta do projeto um dos testes:
python -m
unittest testes.test_cliente
python -m
unittest testes.test_cliente.ClienteTest
python -m
unittest testes.test_cliente.ClienteTest.test_funcOu todos os testes:
python -m
unittest discover
--
-- []'s Junior Polegato