我安装了 Sprint Tool Suite 3.3 和最新版本的 Infinitest。根据 Infinitest 的说法,我的许多课程都有错误,但 Maven 构建得很好。以下是 STS 中的“问题”选项卡显示的一些错误示例:
InvalidDataAccessResourceUsageException (Table "ADDRESSTYPEREF" not found; SQL statement:...SeedAddressTypes.java /... line 34 Infinitest Test Failure
AssertionFailure (null id in com..model.base.Menu entry (don't flush the Session after an exception occurs)) in TestMenuBuilderIT.sortByTopMenu TestMenuBuilderIT.java
所有显示错误的测试都是将 Java Config 用于 EmbeddedDatabase 的集成:
public class TestMenuBuilderIT extends BaseItegration {
@Autowired
private MenuRepository menuRepository;
@Test
public void sortByTopMenu() {
List<Menu> testMenu = menuRepository.findAll(); <== offending line
...
}
和配置类:
@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( loader = AnnotationConfigContextLoader.class, classes = { JpaConfig.class } )
public abstract class BaseItegration {
..
}
@Configuration
@EnableTransactionManagement
@ComponentScan( basePackages = { ...} )
@ImportResource( { "classpath:applicationContext.xml"} )
public class JpaConfig {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder().setType( EmbeddedDatabaseType.H2 ).setName( "testdb" )
.addScript( "classpath:embeddedDatabase.sql" ).build();
}
我不明白为什么这在 Maven 中可以正常工作,但 Infinitest 有这些与数据库相关的错误。我找不到任何说明 JavaConfig 不适用于 Infinitest 的文档。我可以右键单击并成功运行每个测试“作为单元测试”。
有谁知道这可能是什么原因?