Тест junit должен использовать основные/ресурсы
У меня проблема с тестированием maven и JUnit.
У меня есть некоторые файлы в src/main/resources, и при запуске junit-тестов я хочу эти файлы. Только один тестовый файл с немного разными настройками должен отменять соответствующий файл.
Поэтому моя идея состояла в том, чтобы дать этому тестовому файлу то же имя, что и основной файл, и поместить его в файл src/test/resources в том же (соответствующем) месте, что и основной файл.
Но теперь у меня есть проблема, что я не могу использовать все остальные файлы из src/main/resources.
Я думал, что тест junit будет по умолчанию дефолтом в целевые/тестовые классы/при запуске, основанный на файлах из src/test/resources, но это не так. Существует только файл из src/test/resources, а не другой.
Спасибо за любые идеи, как я мог решить эту проблему.
вот пример того, как я пытаюсь получить доступ к файлам
@BeforeClass
public static void globalSetUp() throws NamingException, SQLException {
System.setProperty("solr.solr.home", "/solr/");
cores = new CoreContainer(
"/home/foo/workspace/reporting/target/test-classes/solr");
cores.load();
server = new EmbeddedSolrServer(cores, "reporting");
loadDriver();
connection = createAndConnectToDB();
createDBSchema();
}
Ответы
Ответ 1
Проблема была в pom.xml.
/main/resources не был как testResource.
Вот фрагмент, который решил мою проблему:
<build>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/main/resources</directory>
</testResource>
</testResources>
</build>
Ответ 2
Фактически оба доступны/доступны. Файлы в src/main/resources и src/test/resources. Однако при загрузке файлов из пути к классам любой файл в src/test/resources имеет приоритет над файлами в src/main/resources.
Трудно полностью ответить на ваш вопрос, так как вы не указали много деталей (используете ContextConfiguration? Если нет, как вы загружаете файлы), но я бы предположил, что вы используете другое имя и загружаете этот файл явно в одном тесте, который ему нужен.
Вы также можете иметь одно и то же имя, но тогда всем другим тестам потребуется явно использовать путь src/main/resources для загрузки файла по умолчанию.