Rails с Neo4jrb по-прежнему использует sqlite3 для тестирования

Я настроил свое приложение rails для использования Neo4j с использованием Neo4jRB, что прекрасно как при производстве, так и при разработке. Однако в тестировании я получаю ошибку ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:для каждого теста, поэтому кажется, что он все еще хочет использовать SQLite3.

Я настроил свой config/neo4j.yml так, чтобы он указывал на работающую тестовую базу данных, однако database.yml по- прежнему указывает на SQLite3, и если я внесу в него изменения, то ошибка изменится, поэтому я предполагаю, что это связано с что, но neo4jrb документация не упоминает, что вам нужно изменить database.yml.

Вот тестовый раздел моего neo4j.yml: test: type: http url: http://localhost:7575

database.yml - это просто стандартный сгенерированный Rails-файл: default: &default adapter: sqlite3 pool: <%= ENV.fetch(RAILS_MAX_THREADS") { 5 } %> timeout: 5000 test: <<: *default database: db/test.sqlite3

Изменение адаптера, например, на neo4jrb в database.yml удаляет исключения SQLite и дает мне адаптер, а не исключение вместо.

1 ответ

Как указано в ошибке, это происходит от ActiveRecord, а не Neo4jrb:

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table:

Я предполагаю, что у вас установлены и Neo4jrb, и ActiveRecord (что разрешено). Когда вы запускаете свои тесты, ActiveRecord не настроен должным образом. Если вы не хотите, чтобы ActiveRecord был установлен, вы должны удалить его. Иными словами, это звучит как проблема конфигурации ActiveRecord, а не проблема конфигурации Neo4jrb.

Другие вопросы по тегам