@DataJpaTest自动装配数据源

时间:2018-07-26 16:35:05

标签: java spring spring-boot spring-test dbsetup

我正在使用dbsetup框架来设置数据库。我正在尝试使用注释@DataJpaTest测试存储库级别(我正在使用Spring数据)。要使用“ dbsetup”设置数据库,我需要自动连接数据源,但是我不能自动连接,因为@DataJpaTest创建了自己的数据源并且数据源已经存在(但是我不知道如何使用它... )。问题是如何使用@DataJpaTest自动连接数据源以设置数据库?

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@TestPropertySource("/application-test.properties")
public class ArticleRepositoryTest {

    @Autowired
    private ApplicationContext applicationContext;
    @Autowired
    private EntityManager entityManager;
    @Autowired
    private ArticleRepository articleRepository;
    @Autowired
    private TagRepository tagRepository;
    @Autowired
    private UserRepository userRepository;
    //here is the error, because datasource already exists...
    @Autowired
    private DataSource dataSource;

    @Before
    public void cleanData() throws SQLException {
        Operation operation = sequenceOf(CommonOperations.DELETE_ALL);
        DbSetup dbSetup = new DbSetup(new DataSourceDestination(dataSource), operation);
        dbSetup.launch();

        DBUtil.resetAutoIncrementColumns(applicationContext, "article", "tag", "user");
    }

1 个答案:

答案 0 :(得分:0)

如果不需要自动配置的数据库,请删除@ DataJpaTest,@ AutoConfigureTestDatabase会根据您在application-test.properties中配置的数据库创建一个数据源。