Как использовать задачу ant JUnit с

Я пытаюсь добавить автоматизацию тестирования JUnit на свой сервер CI. Я разработал все тесты, которые необходимо запустить, и могу запускать их локально из eclipse. Я использую тестовую библиотеку Spring и JUnit4. Я столкнулся с проблемой, пытаясь запустить эти тесты на моем сервере CI. Кажется, муравей не разрешает файлы, отличные от jar, в пути к классам. Мой тестовый класс опирается на applicationContext, который он находит через путь к классам:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="test-config.xml")
@TransactionConfiguration(defaultRollback=true,transactionManager="transactionManager")
public class DAOTest {

Затем этот файл конфигурации контекста ссылается на некоторые файлы sql для загрузки из пути к классам:

<jdbc:embedded-database id="myDataSource" type="HSQL">
  <jdbc:script location="tables.sql"/>
  <jdbc:script location="testData.sql"/>
</jdbc:embedded-database>

И, наконец, фабрика сеансов Hibernate указывает на файлы hbm.xml, конечно, из пути к классам:

<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="dataSource" ref="myDataSource"/>
  <property name="hibernateProperties">
    <props>
      <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
      <prop key="hibernate.show_sql">false</prop>
      <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
      <prop key="hibernate.cache.use_second_level_cache">true</prop>
      <prop key="hibernate.cache.user_query_cache">false</prop>
      <prop key="hibernate.generate_statistics">false</prop>
      <prop key="hibernate.jdbc.batch_size">20</prop>
    </props>
  </property>
  <property name="mappingResources">
    <list>
      <value>resources/com/company/project/data/Session.hbm.xml</value>
      <value>resources/com/company/project/data/HistoricalSession.hbm.xml</value>
      <value>resources/com/company/project/data/RememberedData.hbm.xml</value>
    </list>
  </property>
</bean>

Поскольку я не могу предоставить какие-либо из этих вещей в пути к классам для ограничений муравья, у кого-нибудь есть идеи о том, как вы должны подключить эти вещи?

РЕДАКТИРОВАТЬ: Обновление фрагментами из build.xml. Я добавил элемент path для каталога ресурсов, в котором живет все, на что я пытаюсь ссылаться, но еще не заработал.

Мои пути:

  <path id="master-classpath">
    <pathelement path="${project.classes.dir}" />
    <fileset dir="${project.lib.dir}">
      <include name="*.jar" />
    </fileset>
  </path>

  <path id="classpath.test">
    <path refid="master-classpath"/>
    <pathelement path="${project.test.dir}"/>
    <fileset dir="${project.testLibs.dir}">
      <include name="*.jar"/>
    </fileset>
    <pathelement path="resources"/>
  </path>

Цель теста:

  <target name="do-test" if="execute.tests">
    <pathconvert property="classpathProperty" refid="classpath.test"/>
    <echo>Classpath is ${classpathProperty}</echo>
    <delete dir="results"/>
    <mkdir dir="results"/>
    <mkdir dir="results/report"/>
    <junit printsummary="yes" showoutput="yes" fork="true" failureproperty="test.failed">
      <classpath refid="classpath.test"/>
      <formatter type="xml"/>
      <batchtest todir="results">
        <fileset dir="${project.test.dir}">
          <include name="**/*.java"/>
        </fileset>
      </batchtest>
      <test name="com.company.project.test.DAOTest" todir="results"/>
    </junit>
    <junitreport todir="results/report">
      <fileset dir="results" includes="*.xml"/>
      <report todir="results/report"/>
    </junitreport>
    <fail message="test failed" if="test.failed"/>
  </target>

The failure that I see each time is always "classpath resource [file] cannot be opened because it does not exist"


person tdimmig    schedule 06.01.2014    source источник
comment
Я думаю, вам нужно выяснить, что не так в вашей конфигурации муравья. Это должно сработать, если вы делаете это правильно. Добавьте свое определение и задачу к вопросу   -  person Sean Patrick Floyd    schedule 07.01.2014
comment
Я добавил детали из моего build.xml. Чтобы запустить приложение в рабочей среде, каждый файл hbm.xml и applicationContext.xml перечислены в пути к классам. Я ожидал сделать то же самое для этого, но муравей запрещает это. Выяснение того, как обойти это, оставило меня в тупике.   -  person tdimmig    schedule 07.01.2014
comment
этот вопрос показывает, что я имею в виду под не возможность перечислить сами файлы xml непосредственно в пути к классам   -  person tdimmig    schedule 07.01.2014