Как запустить тесты в режиме Arquillian IN_CONTAINER с Hibernate - PullRequest
1 голос
/ 25 ноября 2011

Я нахожусь в процессе чтения EJB 3, второго издания Мэннинга, и мне тяжело проводить тесты на источнике в IntelliJ

Тест: Полный источник может бытьнайдено здесь :

@RunWith(Arquillian.class)
@Run(RunModeType.IN_CONTAINER)
....
.....
    @Deployment
    public static Archive<?> createDeployment() {
        return ShrinkWrap.create(JavaArchive.class, "foo.jar").addClasses(OrderProcessor.class,
                OrderProcessorBean.class,
                ItemService.class,
                ItemServiceBean.class, Bid.class, Bidder.class, Item.class).addManifestResource("test-persistence.xml", ArchivePaths.create("persistence.xml"));
    }

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
   xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
      http://java.sun.com/xml/ns/persistence
      http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
   <persistence-unit name="users" transaction-type="JTA">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>jdbc/chapter2</jta-data-source>
      <properties>
         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
         <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
      </properties>
   </persistence-unit>
</persistence>

Ошибка при выполнении теста:

WARNING: Could not obtain connection to query metadata
java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.
    at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:112)
    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71)

ОБНОВЛЕНИЕ

domain.xml находится здесь :

Из ошибки похоже на соединение с базой данныхне может быть установлено.Однако я не уверен, почему он не может подключиться к базе данных Derby в памяти.так как domain.xml имеет свойство create=true, базу данных просто необходимо создать.

1 Ответ

0 голосов
/ 25 ноября 2011

Из-за ошибки кажется, что соединение с базой данных не может быть установлено.Однако я не уверен, к какой базе данных он пытается подключиться.У меня не запущена база данных для этой системы.

Do I need to have a database running specifically or will the test run a database on it's own?
If so, which one?

Тест должен пытаться подключиться к экземпляру базы данных derby в памяти, настроенному в / test / resources / glassfish/config/domain.xml, поэтому я не думаю, что вам понадобятся какие-либо дальнейшие настройки.

Комментарии Брайана на этом arquillian doc предполагают несколько изменений в arquillian.xml.Возможно стоит попробовать.

...