Подтвердить что ты не робот

Тест 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();

}

4b9b3361

Ответ 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 для загрузки файла по умолчанию.