我有一个运行良好的jhipster应用程序,但无法对其进行单元测试。它配置为使用mysql进行开发和生产。我已经几次更新了架构(导入了jdl),并使用了liquibase变更日志来保持它的快乐。我向服务层添加了一些功能,并希望对其进行测试以确保其行为符合预期。但是,当我运行单元测试时,我遇到了liquibase的问题。它抱怨“在表[维]中缺少列[material_template_id]”,所有帐户都应在其中。实体维度文件具有定义的列:
<column name="material_template_id" type="bigint">
<constraints nullable="true" />
</column>
我已经定义了这样的单元测试:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AlphaApp.class)
@Transactional
public class BomMaterialLineServiceImplTest {
@Autowired
BomMaterialLineServiceImpl bomLineSvc;
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void findBomMaterialLinesForBOM() {
}
}
AlphaApp是主文件,其注释如下:
@ComponentScan
@EnableAutoConfiguration(exclude = {MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class})
@EnableConfigurationProperties({LiquibaseProperties.class, ApplicationProperties.class})
public class AlphaApp {
我尝试在测试配置文件中禁用liquibase。是否有使用jhipster实施这些测试的标准方法?在我看来,单元测试已配置为使用内存数据库作为标准-这是否使我感到悲伤?
答案 0 :(得分:0)
是的,JHipster中的单元测试使用H2,但是您可以通过编辑src / test / resources / config / application.yml并更改数据源属性来对其进行更改。