Buildr - поместить тестовые ресурсы в classpath - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь использовать buildr для создания моего проекта Java.У меня есть куча тестов согласования и спецификаций HTML, расположенных следующим образом:

src/test/java/spec/x/y/z/SomethingTest.java
src/test/resources/spec/x/y/z/Something.html

buildr находит фактический тестовый код (SomethingTest.java) и запускает его, но HTML не заканчивается наclasspath и так тест не пройден.Я получаю следующую ошибку:

[junit] Testcase: [Concordion Specification for 'Something'] took 0.002 sec
[junit]     Caused an ERROR
[junit] Resource '[classpath: /x/y/z/Something.html]' not found
[junit] java.io.IOException: Resource '[classpath: /x/y/z/Something.html]' not found
[junit]     at org.concordion.internal.ClassPathSource.createInputStream(ClassPathSource.java:15)
[junit]     at org.concordion.internal.XMLSpecificationReader.readSpecification(XMLSpecificationReader.java:25)
[junit]     at org.concordion.Concordion.process(Concordion.java:30)
[junit]     at org.concordion.Concordion.process(Concordion.java:26)
[junit]     at org.concordion.internal.FixtureRunner.run(FixtureRunner.java:18)
[junit]     at org.concordion.integration.junit4.ConcordionRunner$1.evaluate(ConcordionRunner.java:113)
[junit]     at org.concordion.integration.junit4.ConcordionRunner.runChild(ConcordionRunner.java:104)
[junit]     at org.concordion.integration.junit4.ConcordionRunner.runChild(ConcordionRunner.java:18)
[junit] 
[junit] TEST x.y.z.SomethingTest FAILED

Мой buildfile выглядит следующим образом:

repositories.remote = 'http://www.ibiblio.org/maven2'

JODA = 'joda-time:joda-time:jar:2.0'
CONCORDION = 'org.concordion:concordion:jar:1.4.2'
XERCES = 'xerces:xercesImpl:jar:2.8.1'
XOM = 'xom:xom:jar:1.2.5'

define 'my-project' do
  project.version = '0.0.1'
  compile.with JODA
  test.with XERCES, XOM, CONCORDION
  package :jar
end

Я попытался принудительно заставить файлы HTML на пути к классам, используя варианты Java.classpath << 'src/test/resources/x/y/z'test.resources.include но безрезультатно.Я уверен, что мне просто не хватает чего-то простого.Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

3 голосов
/ 23 мая 2012

По умолчанию Buildr использует соглашение mavens о разделении исходного кода и ресурсов.Поэтому тестовые ресурсы должны быть помещены в каталог "src / test / resources".

0 голосов
/ 19 июля 2012

Buildr теоретически должен копировать ресурсы в <project-dir>/target/test/resources и включать это в classpath при запуске тестов.Проверьте, существует ли этот каталог, и если да, то если он пуст.

Запускаете ли вы Eclipse, пока возникает эта проблема?Если это так, это может быть конфликт между buildr и затмением.Попробуйте закрыть Eclipse, затем запустите buildr clean и buildr test.

. Я видел подобные проблемы, и моя теория состоит в том, что Eclipse создает пустые целевые каталоги, как только они удаляются, например, Buildr.,Затем Buildr проверяет временную метку целевого каталога и видит, что он более поздний, чем любой из исходных ресурсов, и считает, что он должен быть актуальным.Таким образом, любая программа, которая создает пустые целевые каталоги ресурсов, теоретически может вызвать эту проблему.

0 голосов
/ 12 марта 2012

убедитесь, что вы используете this.getClass (). GetClassLoader (). GetResourceAsStream ([ваш URL]);

, а не просто новый файл ([ваш URL]);

см http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29

...