0

测试日志显示以下错误

row 0 - got data of type graph.Node but wanted graph.Node
--- FAIL: TestAlls (0.84s)
panic: interface conversion: interface {} is graph.Node, not graph.Node [recovered]
    panic: interface conversion: interface {} is graph.Node, not graph.Node

从以下代码

nnn = graph.Node{}
nnn, ok = row[0].(graph.Node)
if !ok {
  log.Printf("row 0 - got data of type %T but wanted graph.Node", nnn)
}
neo4jNode := row[0].(graph.Node)
  • 是否有可能有两种不同的类型具有相同的名称?(图.节点)
  • 在这种情况下,我应该清除哪些文件夹?
  • [恢复] 是什么意思?

我正在使用 glide 安装、清理、构建、测试。

4

2 回答 2

1

是否有可能有两种不同的类型具有相同的名称?(图.节点)

是的。如果生成对象的代码(无论生成什么rows)引用同一个库的不同副本,则类型将不匹配 - 例如,如果您引用foo已供应商的库,graph它将引用其供应商版本,而您引用你自己的版本。也可以同时命名两个完全不同的包(不同的导入路径),graph但我假设您已经排除了这一点。

在这种情况下,我应该清除哪些文件夹?

不幸的是,这并不是那么简单——您需要仔细查看您的依赖项。如果您将一个项目作为库导入,并且它有自己的依赖项,那么您将度过一段糟糕的时光。这就是为什么在库中供应商依赖关系是一种不好的做法(依赖关系应该为二进制文件供应)。

[恢复] 是什么意思?

这意味着 apanic恢复。这是由测试库完成的,以在测试导致恐慌时返回准确的测试结果。

于 2017-08-24T18:10:09.920 回答
0

问题的根源是存储库中有多个 glide.yaml (& vendor/)。解决方案是只有一个根 glide.yaml (& vendor/)。

于 2017-08-25T13:07:31.053 回答