Olá ao tentar executar a aplicação com a classe de teste apontada para o banco de testes esta gerando um erro no teste, ele não esta subindo o profile de testes, esta enxergando o primeiro arquivo application.properties
segue abaixo o código da classe e do application.properties, não consegui achar o problema, ao executar o teste ele retorna 2 linhas do curso, 1 que esta no data.sql e a outra que esta sendo criada na classe.
package br.com.alura.forum.repository;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import br.com.alura.forum.modelo.Curso;
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("test")
public class CursoRepositoryTest {
@Autowired
private CursoRepository repository;
@Autowired
private TestEntityManager em;
@Test
public void deveriaCaregarUmCursoAoBuscarPeloSeuNome() {
String nomeCurso = "HTML 5";
// criando o curso e persistindo no banco de dados.
Curso html5 = new Curso();
html5.setNome(nomeCurso);
html5.setCategoria("Programacao");
em.persist(html5);
Curso curso =repository.findByNome(nomeCurso);
Assert.assertNotNull(curso);
Assert.assertEquals(nomeCurso,curso.getNome());
}
@Test
public void NaodeveriaCaregarUmCursoCujoNomeNaoEstejaCadastrado(){
String nomeCurso = "JPA";
Curso curso =repository.findByNome(nomeCurso);
Assert.assertNull(curso);
}
}
application-test.properites
# criado para apontar a conexão para o banco de testes.
server.port = 8086
#datasource
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:alura-forum-test
spring.datasource.username=sa
spring.datasource.password=
# esta anotação faz com que o arquivo data.sql não seja inicializado, e o banco siga vazio
spring.datasource.initialization-mode = never
#jpa
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true