bundle exec rake
在本地运行所有测试都很好。然而,Travis CI 在Problem accessing /authentication
没有提供更多信息的情况下不断爆发。这是失败的构建之一:https ://travis-ci.org/Nase00/Horizon/builds/48094102对于我的一生,我无法弄清楚 Travis 尝试运行时导致身份验证错误的原因bundle exec rake
。
1 回答
我不确定 Neo4j Travis 使用什么版本(更新:他们使用 1.9.4,不支持),但我猜它比 Neo4j.rb 支持的版本要旧一些。我是核心维护者之一,构建了 Neo4j 2.2 auth 支持,这让你感到困惑,但我用不同的版本对其进行了测试,回到早期的 2.1 颠覆并没有遇到任何问题。
最好的做法是根本不使用 Travis 的 Neo4j。相反,将 Travis 配置为安装用于开发和生产的数据库的相同版本。作为奖励,安装 Neo 的 rake 任务也会在 2.2 中禁用身份验证,因此您根本不必处理这个问题。并不是我们反对 auth,而是我们认为 rake 安装和配置任务是开发/测试环境的便利功能,而不是生产环境,所以没有 auth 似乎是一个合理的默认值。
看看我们的.travis.yml
文件,看看我们是如何进行安装的。https://github.com/neo4jrb/neo4j/blob/master/.travis.yml。可以解决您的问题的摘要:
script:
- "bundle exec rake neo4j:install['community-2.2.0-M02'] neo4j:start default --trace"
language: ruby
rvm:
- 2.0.0
交换community-2.2.0-M02
您要使用的任何版本。我必须再次检查,但据我记得,我们与早在 2.1.2 的版本兼容。对于没有在我们的文档中发布的内容,我深表歉意——应该如此。
我非常强烈推荐使用带有 Neo4j.rb 的 Ruby 2.2.0。我们在 Cypher 查询期间生成了很多符号,否则这些符号不会被垃圾收集。
编辑更多信息
auth 模块做的第一件事是检查身份验证 REST 端点的存在。在我测试的所有 Neo4j 版本中,它没有给出这样的错误,它只是返回一个空的主体,我们将其解释为不支持或禁用 auth 的标志。
后果编辑
Travis 支持确认他们提供的 Neo4j 版本是 1.9.4。