Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Teste de integração não termina a execução

Já havia aberto um tópico sobre isso no fórum, marquei como solucionado sem querer e não consegui desmarcar, portanto estou abrindo um novo tópico.

Meu teste de integração não executa. O docker sobe normalmente os dois containers, entretando o teste não finaliza. Não dá erro nem nada, simplesmente deixei quase 30min executando e não obtive nenhum retorno. Utilizei exatamente o mesmo projeto, pensei que podia ser algo no código então clonei o projeto do curso e tentei pelo clonado. Também tentei em diferentes máquinas pensando que poderia ser alguma permissão ou algo do tipo e não obtive retorno ainda assim.

Mudar a versão do sqlserver, como mencionado por outro aluno, não adiantou.

2 respostas
solução!

Olá Danielle, eu estava com o mesmo problema que vc e hoje finalmente encontrei uma solução e espero que funcione para vc tb e para todos os outros que estejam com o mesmo problema. Independente de usar a vesão 2019 ou 2022, nenhuma funcionava, deixei rodando mais de 1h para finalmente dar System.TimeoutException.

Depois de tentar várias coisas, o que deu certo foi simplesmente apagar a linha .WithImage("mcr.microsoft.com/mssql/server:2022-latest"), porque a imagem do SQL Server já tem uma configuração pré-definida que usa a imagem mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04. A primeira vez que rodei os teste com essa imagem deu erro, foi cancelado, mas depois rodei várias vezes e deu certo em todas. Então ficou assim:

 private readonly MsSqlContainer _msSqlContainer = new MsSqlBuilder().Build();

Vi essa opção nesse artigo: https://code-maze.com/csharp-testing-using-testcontainers-for-net-and-docker/

Não sei se estou certa, mas imagino que o problema talvez seja a versão do windows e, consequentemente, a do docker desktop usada. Para eu poder usar o docker precisei instalar WSL 2, Windows Subsystem for Linux, logo precisei da imagem para o Linux. Se a instrutora usa o docker desktop sem usar o WSL, então consegue usar a imagem para o window. Cheguei a essa conclusão porque na documentação do Docker está escrito isto: To run Windows containers, you need Windows 10 or Windows 11 Professional or Enterprise edition. Windows Home or Education editions only allow you to run Linux containers.

=)

@Mariana Poleto dos Santos, eu estava com o mesmo problema e isso funcionou para mim