Я из основной команды azk, и здесь мы добавляем тестовую среду, просто добавляя дополнительную парную систему + db с соответствующими настройками.
Это даже проще, если вы используете распространяется на тест-систем:
systems({
example: {
depends: ["postgres"],
// ...
},
example-test: {
extends: "example",
depends: ["postgres-test"],
scalable: { default: 0, limit: 1 },
http: false,
wait: false,
envs: {
// envs aren't extended by default. Add all required env vars from the original system here
// ...
},
},
postgres: {
// ...
},
"postgres-test": {
extends: "postgres",
scalable: { default: 0, limit: 1 },
envs: {
// Once again, add the required env vars from postgres system here
POSTGRES_USER: "azk",
POSTGRES_PASS: "azk",
POSTGRES_DB : "#{manifest.dir}_test",
},
},
});
Убедитесь, что database.yml
способен обрабатывать DATABASE_URL
ENV вар (мы сильно рекомендуем использовать этот один: https://gist.github.com/gullitmiranda/62082f2e47c364ef9617)
И, наконец, чтобы выполнить ваши тесты, просто выполните:
$ azk start postgres-test
$ azk shell example-test -- bundle exec rake test
Этого должно быть достаточно, но, пожалуйста, дайте мне знать, если у вас есть другие проблемы.
Привет, я ответил на это, но он работает только в том случае, если имя базы данных одинаково. В противном случае azk вызывает ошибку: azk: PG :: ConnectionBad: FATAL: база данных «myapp_test» исчезла из pg_database azk: ПОДРОБНОЕ ОПИСАНИЕ: База данных OID 57345 теперь, похоже, принадлежит «myapp_pass». Я уже удалил постоянные папки и репродуцировал ту же ошибку. – shadowmaru
@shadowmaru, тестовая база данных не запускается. Выполняемые команды не завершены. Я уточню свой ответ. Спасибо за ваш отзыв! –