Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Tou tomando um InvocationTargetException ao rodar os testes de integração

O projeto está tal qual o do curso, não modifiquei nada, ao rodar o comando:

λ mvn clean verify -Ptestes-integracao -Dwebdriver.chrome.driver=pathToDriver

eu recebo o seguinte erro:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.365 sec <<< FAILURE! - in br.com.caelum.argentum.bean.FiltraNegociacoesIT
INFORMAÇÕES: Pausing ProtocolHandler ["http-bio-8888"]
br.com.caelum.argentum.bean.FiltraNegociacoesIT  Time elapsed: 2.363 sec  <<< ERROR!
mai 18, 2018 3:40:38 PM org.apache.catalina.core.StandardService stopInternal
java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.WebArchive br.com.caelum.argentum.bean.FiltraNegociacoesIT.createWar()
INFORMAÇÕES: Stopping service arquillian-tomcat-embedded
    at br.com.caelum.argentum.bean.FiltraNegociacoesIT.createWar(FiltraNegociacoesIT.java:41)
Caused by: java.lang.reflect.InvocationTargetException
mai 18, 2018 3:40:38 PM org.apache.coyote.AbstractProtocol stop
    at br.com.caelum.argentum.bean.FiltraNegociacoesIT.createWar(FiltraNegociacoesIT.java:41)
INFORMAÇÕES: Stopping ProtocolHandler ["http-bio-8888"]
Caused by: java.lang.NoClassDefFoundError: com/google/inject/Module
    at br.com.caelum.argentum.bean.FiltraNegociacoesIT.createWar(FiltraNegociacoesIT.java:41)
mai 18, 2018 3:40:38 PM org.apache.coyote.AbstractProtocol destroy
Caused by: java.lang.ClassNotFoundException: com.google.inject.Module
INFORMAÇÕES: Destroying ProtocolHandler ["http-bio-8888"]
    at br.com.caelum.argentum.bean.FiltraNegociacoesIT.createWar(FiltraNegociacoesIT.java:41)

O que pode ser?

5 respostas

Boa tarde Rithyelle, tudo bom?

O erro aconteceu porque o Java não achou o WebDriver.

No comando que você está executando no Jenkins, a configuração para o WebDriver está assim:-Dwebdriver.chrome.driver=pathToDriver.No lugar de pathToDriver, deve ficar o caminho até o diretório do chromedriver, como aparece no video no minuto 04:25.

Me avisa se deu certo! Se não tiver dado certo, a gente tenta ver outras soluções. :)

Ana, eu coloquei "pathToDriver" no post, mas no, coloco o caminho mesmo, o caminho até o driver está correto. C:\Users\henri\git\cursos\integracao-continua\chromedriver.exe Por motivos de ser um path muito extenso, acabei não colocando no post.

Rthyelle, perdão, não pensei nisso.

Olhando melhor a stacktrace, parece que foi na linha 41 do arquivo FiltraNegociacoesIT.java, onde, segundo o código do instrutor, está a chamada pro método loadMetadataFromPom("pom.xml"). A stacktrace do erro mostrou só essas linhas? Se tiver mais linhas, pode compartilhar pra vermos em que parte desse carregamento houve a falha?

a linha da exceção é :

        MavenDependencyResolver resolver = DependencyResolvers.use(MavenDependencyResolver.class).loadMetadataFromPom("pom.xml");

Mais precisamente em:

DependencyResolvers.use(MavenDependencyResolver.class)

Consegue mandar também a stacktrace toda?Copia a parte toda do terminal que mostra o erro e manda aqui. Porque pode ter mais dicas de porque que deu erro ao resolver as dependências com o Maven.