2015-07-09 7 views
4

Я использую azk в моей разработке (это проект Ruby on Rails), и azk устанавливает базу данных MySQL с именем #{manifest.dir}_development (с именем manifest.dir, являющимся именем каталога, где находится проект).azk - как настроить тестовую базу данных?

Проблема в том, что когда я пытаюсь запустить RSpec-тесты, он будет обращаться к той же самой базе разработки, а не к тестовой базе данных.

В течение последних нескольких часов мы с коллегами пытались выяснить, как настроить тестовую базу данных. Как мы можем это сделать?

ответ

6

Я из основной команды 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 

Этого должно быть достаточно, но, пожалуйста, дайте мне знать, если у вас есть другие проблемы.

+0

Привет, я ответил на это, но он работает только в том случае, если имя базы данных одинаково. В противном случае azk вызывает ошибку: azk: PG :: ConnectionBad: FATAL: база данных «myapp_test» исчезла из pg_database azk: ПОДРОБНОЕ ОПИСАНИЕ: База данных OID 57345 теперь, похоже, принадлежит «myapp_pass». Я уже удалил постоянные папки и репродуцировал ту же ошибку. – shadowmaru

+0

@shadowmaru, тестовая база данных не запускается. Выполняемые команды не завершены. Я уточню свой ответ. Спасибо за ваш отзыв! –

Смежные вопросы