当前位置: 首页 > 知识库问答 >
问题:

schema的Spring Boot单元测试h2失败

郦良才
2023-03-14
@ExtendWith(SpringExtension.class)
@DataJpaTest
@AutoConfigureTestDatabase //h2
@ActiveProfiles("test")
class TopicRepositoryTest extends BaseRepositoryTest {

    @Test
    public void newTopicCreationShouldBePossible() {        
        Topics newTopic = createTopics("STEAM"); //from base
        assertNotNull(newTopic.getId());
    }
}

spring.datasource.hikari.schema=demo

错误:

原因:org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名为“Entity ManagerFactory”的bean时出错:bean初始化失败;嵌套异常为org.springframework.jdbc.datasource.init.ScriptStatementFailedException:无法执行类路径资源[Maria/ImportCommon.SQL]的SQL脚本语句#1:插入到demo.myTable(col1,col2)值(“val 1”,“ks1”)中;嵌套异常为org.h2.jdbc.jdbcsqlSyntaxerRoreXception:未找到架构“demo”;SQL语句:

spring.datasource.hikari.schema=demo

如何解决此问题并通过测试?

共有1个答案

冯霖
2023-03-14

我建议更新不带模式前缀的insert语句

插入课程(col1、col2)值('VAL 1'、'KS1');

删除“演示”。

 类似资料:
  • 需要对项目的控制器部分进行单元测试,但却得到了错误。我相信ModelAndVIew部分导致了这个问题,尽管我曾经嘲弄过它并返回ModelAndVIew,因为它是方法的返回类型。然而,它并不起作用。pom.xml没有任何问题,因此没有添加它。ProjectController: java.lang.IllegalStateException:找不到@SpringBootConfiguration,您

  • 我正在尝试为一个现有的应用程序编写单元测试用例,该应用程序有多个模块,每个模块中都有主类。有多个类具有\@SpringBootApplication。我写了一个简单的测试用例,它失败了,错误如下。我如何继续我的测试用例中的一个。 java.lang.IllegalStateException:在文件[C:\My Data\Workspace\Services2\MicroServices\Repo

  • 我不熟悉匕首。我创建了一个非常简单的单元测试,试图理解我应该如何使用dagger。不幸的是,它失败了。我可能还不了解匕首的一些基本原理。 而我的测试课失败了 我认为dagger会将B注入A,因为A希望注入B,DaggerModule包含一个@Providers注释方法,该方法创建B。 更新: 我发现当我像这样编写模块类时 将B注入A作品中。然而,我不理解为什么当模块有一个构造a实例的带注释的方法时

  • 我有一个在命令行上运行的springboot 2应用程序。命令行参数之一是命名中带有batchNo的fileName。我正在使用命令行参数中的fileName设置我application.properties的fileName值。示例 在我的应用程序配置文件中,我像这样从applications.properties文件中读取文件名。 我的目标是能够为每个单独的测试动态设置这个文件名。 示例 如何

  • 我想测试我的SpringBoot应用程序,它使用cassandra作为CrudRepository。我最终得到了 具有 和 这就导致了 如果我使用旧版本的cassandra-unit-Spring 它以NullPointerException结束,因为没有注入值repo。 来源https://github.com/StephanPraetsch/spring.boot.cassandra.unit

  • 我试图在我正在编写的脚本中测试错误处理。如果异步函数fetchBar失败,我将模式匹配失败案例,然后返回包含失败结果的成功未来。 然而,当我对这个流进行单元测试时,我在测试失败案例时遇到了麻烦。我在fetchBar上打了一个存根,以返回失败的future,如下所示。 但是我注意到fetchedBar返回的是成功而不是失败。为什么会这样,我如何存根fetchBar函数来创建一个失败的尝试?