Весеннее затмение при тестировании пути к классам - PullRequest
0 голосов
/ 11 января 2012

Я читал:

http://static.springsource.org/spring/docs/2.5.x/reference/resources.html

Но мне трудно понять, как указывать пути к ресурсам классов. Например, у меня есть следующая структура проекта в проекте «Затмение весны»:

project1
  src
    main
       resources
               maincontext.xml
    test      
       resources
               testcontext.xml
       java
           uk
             co
               project1
                      Unittest.java

Тогда в моем тестовом файле у меня есть:

@ContextConfiguration(locations={"classpath:testcontext.xml", "classpath:<path of maincontext>"})

открытый класс BlacklistTest расширяет AbstractTransactionalJUnit4SpringContextTests {

Когда я щелкаю правой кнопкой мыши по моему тестовому файлу и выбираю отладку в качестве теста JUnit, testcontext.xml найден в порядке. Это заставляет меня думать, что корень моего пути к классам - "project1 / src / test / resources". Я не понимаю, где это определяется в затмении ..? Кроме того, как только я это сделаю, как мне включить maincontext.xml, если он выше моего корня? И, наконец, если я включил другой проект 'project 2' и хотел добавить из него весенний контекстный файл, как мне ссылаться на него в моем файле unittest.java.

1 Ответ

1 голос
/ 11 января 2012

"root" вашего classpath, буквально, "" (пустая строка, считайте его "/" в файловой системе).

Похоже, вы используете Maven.Это означает, что такие вещи, как /src/main/java, /src/main/resources и т. Д., Объединяются в процессе сборки - иными словами, Eclipse использует каждый из них в качестве исходного каталога.Иерархия test следует этому примеру.

Вы не хотите включить что-то, что «выше» вашего корня - IMO придерживается ресурсов classpath.Если вы этого не сделаете, вы должны указать его явно, исключить префикс "classpath:", поскольку он отсутствует в пути к классам, и указать полный путь (или такой полный, как требует ваша среда, например,имя файла веб-приложения может основываться на корне веб-контекста, например "/WEB-INF/foo-context.xml").

...