Измените свой форматер текста (в app.config), чтобы использовать время локального сервера, в противном случае по умолчанию используется UTC.
например. заменить токен {timestamp} на {timestamp (local)}
Это непростая проблема, и на нее нет простого ответа. Надеюсь, эти указатели помогут.
Я думаю, что ваша лучшая стратегия - разделить ваши тесты на настоящие модульные тесты - те, которые могут работать изолированно без контейнера, и переместить тесты, требующие контейнера, в интеграционные тесты.
Вы можете использовать Ejb3unit , чтобы максимизировать количество тестов, которые не требуют запуска контейнера. Это помогает имитировать некоторые сложные зависимости. Ejb3unit имеет плагин Maven, подробности подключения к их репозиторию Maven см. В документации .
Также могут помочь другие фреймворки имитации, такие как JMock. Вы можете имитировать классы, а также интерфейсы, если используете ClassImposteriser .
Для тех тестов, которым действительно нужен контейнер EJB, вы можете настроить их для запуска как интеграционных тестов , возможно, имеет смысл переместить их в отдельный проект, в зависимости от отношений между вашими проектами EJB.
Можно запустить встроенный Экземпляр Jetty в ваших тестах JUnit и программно добавляет к нему сервлеты. Конечно, Jetty не является контейнером EJB. Вам понадобится контейнер EJB, например OpenEJB .
Чтобы настроить OpenEJB в Jetty, используйте такую конфигурацию:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<contextPath>/example</contextPath>
<systemProperties>
<systemProperty>
<name>java.naming.factory.initial</name>
<value>org.apache.openejb.client.LocalInitialContextFactory</value>
</systemProperty>
<systemProperty>
<name>java.naming.factory.url.pkgs</name>
<value>org.mortbay.naming</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
Объявления зависимостей для OpenEJB будут be:
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
Вы также можете использовать Selenium , чтобы помочь с функциональными тестами (если вы дошли до этого места), вот руководство по использованию Selenium, Jetty и OpenEJB для этого.
в зависимости от взаимосвязей между вашими проектами EJB.Можно запустить встроенный экземпляр Jetty в ваших тестах JUnit и программно добавить к нему сервлеты. Конечно, Jetty не является контейнером EJB. Вам понадобится контейнер EJB, например OpenEJB .
Чтобы настроить OpenEJB в Jetty, используйте такую конфигурацию:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<contextPath>/example</contextPath>
<systemProperties>
<systemProperty>
<name>java.naming.factory.initial</name>
<value>org.apache.openejb.client.LocalInitialContextFactory</value>
</systemProperty>
<systemProperty>
<name>java.naming.factory.url.pkgs</name>
<value>org.mortbay.naming</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
Объявления зависимостей для OpenEJB будут be:
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
Вы также можете использовать Selenium , чтобы помочь с функциональными тестами (если вы дошли до этого места), вот руководство по использованию Selenium, Jetty и OpenEJB для этого.
в зависимости от взаимосвязей между вашими проектами EJB.Можно запустить встроенный экземпляр Jetty в ваших тестах JUnit и программно добавить к нему сервлеты. Конечно, Jetty не является контейнером EJB. Вам понадобится контейнер EJB, например OpenEJB .
Чтобы настроить OpenEJB в Jetty, используйте такую конфигурацию:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<contextPath>/example</contextPath>
<systemProperties>
<systemProperty>
<name>java.naming.factory.initial</name>
<value>org.apache.openejb.client.LocalInitialContextFactory</value>
</systemProperty>
<systemProperty>
<name>java.naming.factory.url.pkgs</name>
<value>org.mortbay.naming</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
Объявления зависимостей для OpenEJB будут be:
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
Вы также можете использовать Selenium , чтобы помочь с функциональными тестами (если вы зашли так далеко), вот руководство по использованию Selenium, Jetty и OpenEJB для этого.
Для JBoss вы можете попробовать плагин Maven Cargo . В настоящее время я тестирую его с помощью JBoss 5.1 и все еще работаю над ним:
Где я могу найти полный пример плагина Maven Cargo для тестов EJB?