Prepare o ambiente prático de Python
Resumo do laboratório

Ilustração conceitual original (SVG)
| Em resumo | Sua rota |
|---|---|
| Nível e tempo | 100; 20 minutos (estimativa de facilitação) |
| Ação inicial | Localize a raiz de importação da biblioteca antes de escolher um framework de teste. |
| Materiais do aluno | Baixe 02-python.zip |
| Workspace | Abra a raiz do kit extraído; execute a baseline de library relativa a essa raiz |
| Verificação inicial esperada | Os testes unittest existentes são descobertos e passam. |
| Ajuda de configuração | Baixe, extraia, Git local e GitHub opcional |
[!NOTE] Um teste que não consegue importar a aplicação não testou o comportamento dela.
Conceitos · Primeira tarefa · Lista de evidências · Redefinir
Objetivos de aprendizagem
- Selecione o mesmo interpretador no VS Code e no terminal.
- Entenda a raiz de importação e o executor de testes da fixture.
- Mantenha ambientes virtuais e caches na unidade de trabalho selecionada.
Antes de começar
Leia configuração do ambiente. Use um interpretador Python com suporte
e a extensão Python do VS Code. Os testes da biblioteca fornecida usam unittest.TestCase;
o pytest pode executá-los no laboratório de pytest. Não instale pacotes para a linha de base
da biblioteca padrão, a menos que um comando realmente os exija.
Conceitos e casos de uso
| Item | Finalidade |
|---|---|
| Interpretador | Executa o código; sua seleção determina os pacotes disponíveis |
| Ambiente virtual | Mantém separadas as dependências desta fixture |
| Diretório de trabalho | Determina as importações de nível superior e os arquivos relativos |
| Descoberta de testes | Localiza os casos; é diferente de executá-los |
Cenário do exercício
A biblioteca fica em AccelerateDevGHCopilot/library. Suas importações esperam
application_core, console e infrastructure abaixo da raiz de importação atual.
Tarefa 1 - Prepare a cópia isolada
node scripts/prepare-hands-on.js --lab 02-python --destination /Volumes/T9/Dev/oss/workshop-runs/02-python
Abra somente a cópia impressa, selecione o interpretador Python e entre em
library no terminal dela. Registre o interpretador e o diretório de trabalho.
Tarefa 2 - Descubra e execute os testes existentes
python -m unittest discover -s tests -p "test_*.py" -v
- Confirme que nomes reais de testes aparecem.
- Registre os resultados das asserções e o status de saída.
- No editor, use Python: Configure Tests e selecione unittest com
testscomo diretório para esta linha de base. - Se o laboratório posterior de pytest for selecionado, crie
.venvna cópia descartável, instale ali o requisito declarado de pytest e selecione esse interpretador. - Evite a descoberta automática em todo o currículo; ele contém cópias independentes com raízes de importação diferentes.
Teste você mesmo
A descoberta de testes do unittest termina sem falhas, mas a saída detalhada não mostra nenhum nome de teste. O que essa linha de base comprova?
Escolha uma resposta para ver por que ela se sustenta ou falha.
- Nada ainda: coletar zero testes não é linha de base aprovada; refaça a descoberta a partir de library. O diretório de trabalho define a raiz de importação: só rodando a partir de library o application_core resolve e os nomes reais aparecem.
- Passa: o comando terminou sem falhas e com status de saída limpo, então a linha de base está confirmada. Sem falhas significa apenas que nada falhou; o laboratório pede para confirmar que nomes reais de teste aparecem antes de confiar.
- As importações quebraram; adicione entradas de sys.path nos testes até application_core resolver. O laboratório alerta contra espalhar mudanças de sys.path pelos testes; a correção é rodar da raiz de trabalho certa, não remendar arquivos.
Verifique seu trabalho
- Terminal e editor usam o interpretador pretendido.
- Os testes são descobertos a partir de
library, não de um diretório sem relação. - Nenhum resultado com zero testes é considerado uma linha de base aprovada.
- Nenhum pacote, ambiente ou cache foi criado no disco do sistema operacional para este workshop.
Solução de problemas
ModuleNotFoundError: application_core geralmente indica uma raiz de trabalho/importação
incorreta. Não espalhe alterações de sys.path pelos testes. Um pacote pytest ausente em uma
linha de base unittest não é motivo para instalar pytest globalmente.
Prática independente
Compare a descoberta do unittest com a coleta do pytest nas mesmas classes TestCase.
Explique por que selecionar ambos os frameworks no VS Code não significa que ambos foram executados.
Restauração
Feche o workspace copiado e restaure somente as preferências alteradas para ele. Mantenha os interpretadores compartilhados e os ambientes virtuais de outros projetos intactos.