Чтобы ответить на мой вопрос, я первый скажу, почему мне нужно изменить каталог данных из солнечных пятен конфигурационных файлов, а не из конфигурации Solr. Я хотел иметь несколько экземпляров Solr для параллельного запуска тестов с использованием parallel_tests gem.
Я понял, что требуется только 1 экземпляр Solr. Тем не менее, параллельные тесты могут быть достигнуты с помощью 1 запуска, но с несколькими ядрами Solr. Для этого вам необходимо обновить solr/solr.xml
путем добавления новых ядер:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
<core name="default" instanceDir="." dataDir="default/data"/>
<core name="development" instanceDir="." dataDir="development/data"/>
<core name="test" instanceDir="." dataDir="test/data"/>
<core name="test2" instanceDir="." dataDir="test2/data"/>
<core name="test3" instanceDir="." dataDir="test3/data"/>
<core name="test4" instanceDir="." dataDir="test4/data"/>
<core name="test5" instanceDir="." dataDir="test5/data"/>
<core name="test6" instanceDir="." dataDir="test6/data"/>
<core name="test7" instanceDir="." dataDir="test7/data"/>
<core name="test8" instanceDir="." dataDir="test8/data"/>
</cores>
</solr>
Затем перезагрузите Solr для создания этих новых ядер:
RAILS_ENV=test bundle exec rake sunspot:solr:restart
Затем измените config/sunspot.yml
путем добавления переменной среды в пути:
test:
solr:
hostname: localhost
port: 8981
log_level: DEBUG
path: /solr/test<%= ENV['TEST_ENV_NUMBER'] %>
Теперь, когда вы запускаете параллельные тесты, будет выбран соответствующий путь/ядро:
bundle exec rake parallel:spec