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

如何在内存服务器中使用neo4j编写单元测试

龙安阳
2023-03-14

我已经编写了一个webservice,现在想为它编写一些单元测试。我偶然发现了Michael Hunger的内存服务器。

由于文档稀少,我很难只设置一个单元测试。我克隆了该项目,将其包含在我的工作区中,并将其作为依赖项添加到我的项目中。

为了测试我的web服务,我编写了以下方法来创建内存中的neo4j服务器:

@BeforeClass
public static void setupInMemoryServer()
{
    CommunityBootstrapper s = new CommunityBootstrapper();
    int status = -1;
    try
    {
        status = s.start();
    }
    catch(Exception e)
    {
        System.out.println("could not start server");
        e.printStackTrace();
        System.out.println(e.getMessage());
        System.out.println(e.getCause());
        System.out.println(e.getLocalizedMessage());
    }
    System.out.println(hostAvailabilityCheck());
    System.out.println("status = "+status);


}
public static boolean hostAvailabilityCheck() { 
        try (Socket s = new Socket("127.0.0.1", 7474)) {
            return true;
        } catch (IOException ex) {
            System.out.println ("Neo server not online");
        }
        return false;
    }

当我运行此代码时,我得到以下输出:

Mai 29,2014 10:13:17 PMsun.reflect.记录器日志SEVERE:无法升级数据库Mai 29,2014 10:13:17 PMmpl.invoke记录器日志SEVERE:java.lang.reflect.ServerStartupException:启动Neo4j服务器失败:启动失败,由于预检任务[类ethod.invokePerformUpgradeIfNecessary]:无法升级数据库在org.junit.runners.model.AbstractNeoS1.run(AbstractNeoSethod.java:47)在org.junit.internal.runners.model.Ballable.run(Ballable.java:12)在org.junit.runners.model.Bethod.invoke(Bootstrapper.java:74)在com.youtube.rest.status.test.CreateUserTest.setupInMemoryServer(CreateUserTest.java:26)在sun.reflect.NativeMEodAccessorImpl.invoke0(Native method)在sun.reflect.NativeMEodAccessorImpl.invoke(UnnovSource)在org.neo4j.server.logging.委托方法方法org.neo4j.server.logging.(未知来源)在org.neo4j.server.Morg.neo4j.server.preflight.(未知来源)在org.neo4j.server.Frameworkmethod$erver.startReflectiveCall(FrameworkMerver.java:218)在org.neo4j.server.ReflectiveCootstrapper.start(ReflectiveCootstrapper.java:87)在org.neo4j.server.FrameworkMootstrapper.start爆炸(FrameworkM在org. eclipse. jdt.内部. Junit. runner运行(JUnit4TestManagement. java: 50)。在org. eclipse. jdt.内部. Junit. runner运行测试执行(TestExpress. java: 38)。由:org. eclipse. jdt.内部. java: 197引起的远程测试运行者。

Mai 29,2014年10:13:17 PM组织。neo4j。服务器登录中。记录器日志严重:无法在端口[7474]上启动Neo服务器

真的

状态=1

Mai 29,2014年10:13:17 PM组织。neo4j。服务器登录中。记录器日志警告:未能完全关闭数据库。Mai 29,2014年10:13:17 PM组织。neo4j。服务器登录中。记录器日志信息:已成功关闭端口[7474]上的Neo服务器,数据库[未知位置]

我不知道为什么会发生这种情况,因为服务器是在内存中构建的,所有内容都是(应该)临时创建的。我既不理解数据库更新冲突是如何发生的,也不理解如何解决它们。

共有1个答案

伍皓
2023-03-14

根据堆栈跟踪中的字符串“无法升级数据库”,看起来您的数据库需要升级,但升级无法自动完成。如本页所述,您可能需要执行“显式升级”。

 类似资料:
  • 问题内容: 我有一个Java课。如何进行 单元测试? 就我而言,我有课做一个二进制和。它需要两个数组,将它们求和,然后返回一个新的二进制数组。 问题答案: 使用正确的输入定义正常情况下的预期和期望输出。 现在,通过声明一个类来实现测试,将其命名为任何东西(通常是类似TestAddingModule之类的东西),并向其添加testAdd方法(即,类似于下面的方法): 编写一个方法,并在其上方添加@T

  • 问题内容: 我使用CKeditor允许用户在登录后内联编辑页面上的内容。 我知道我可以使用以下方式访问数据: 但是我不知道如何将数据发送到脚本,因此我可以更新数据库。如果每次有人取消选择元素时都运行脚本,那将很酷……但是我不知道那是否有可能。 任何提示都很棒!:) 我的网站是使用php / mysql构建的。 问题答案: 像这样: 请注意,这不适用于其他交互,例如:用户调用或用户在编辑时关闭了网页

  • 试图弄清楚我是否可以使用spring kafka和spring kafka测试为@KafkaListener编写单元测试。 我的听众课。 我的测试类别: 我的测试配置类: 有什么简单的方法可以做到这一点吗? 或者我应该以其他方式测试@KafkaListener?在单元测试中,如何确保在Kafka中收到新消息时调用@KafkaListener。

  • 问题内容: 我在解决如何使用Apache Mina时遇到了一些麻烦。他们的文档对于我那才华横溢的大脑来说有点乏味。我在Java SFTP服务器库中看到了有用的起始代码 吗? 我不知道如何使用它。我想使用Mina作为一种模拟服务器来设置检查我的sftp代码的单元测试,即能够编写如下单元测试: 问题是要放入什么。 我一直在浏览测试代码,想知道是否需要在上面进行更多配置以指定根目录,用户名和身份验证密钥

  • 我必须在Spring Boot中为Web服务编写单元测试,它应该从Controller执行测试,并流入Service类。我正在为Service类使用@Mock注释,为Controller使用@InjectMock,因此应用程序流永远不会进入Service类内部(它返回一个null)。 如果没有对 Service 类@Mock注释,我会收到空点异常。 我不想模仿服务类,我想用这个相同的测试单元测试服

  • 我不会告诉你有关后台任务的单元测试的任何内容,因为Hangfire没有添加任何特定方法 (除了 IJobCancellationToken 接口参数)去改变任务。使用您最喜爱的工具,并照常写入单元测试。本节介绍如何测试创建的后台任务。 所有的代码示例都使用静态 BackgroundJob 类来告诉你如何做这个或那些东西,只是出于简单演示的目的。但是当你想测试调用的静态方法时,会变得很痛苦。 不用担