2014-09-02 3 views
1

Я использую Spring Tool Suite 3.5.1 для разработки проекта Spring Roo 1.2.5. Я создал объекты (без Active Record) с EclipseLink (JPA), услуг (реализации и intefaces) и простой контроллер в основном с этими командами:Ошибка Maven tomcat7 с ошибкой интеграции

  1. базы данных инженер обратного --schema ssigdl --package ~ .domain --repository --testAutomatically

  2. сервис все --interfacePackage ~ .Service --classPackage ~ .service.impl

  3. веб Mvc установки

  4. класс контроллера --class ~ .web.CustomPageController --preferredMapping/custompage

Тогда я пытаюсь использовать Maven развернуть с этой целью:

  • tomcat7: развернуть

Когда процесс доходит до части испытаний, это приводит к таким ошибкам

Tests in error: 
    testFindEntries(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testFindAll(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testCount(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testFind(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testSave(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testDelete(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 

И блок ошибок появляется один за каждый созданный объект. Наконец, появляется сообщение об ошибке:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project sirc: There are test failures. 

Если установить флажок Пропустить тестирует в Run Configurations окна, процесс компиляции идет успешно. Моя проблема:

  1. Почему интеграционные тесты не работают?
  2. У меня была ошибка в командах весеннего роя?
  3. Влияет ли эта ошибка на мое приложение?

Update

Это изображение ошибки брошенной Сюита Spring Tool

enter image description here

Я не могу нажать на точки

Решение

я следовал @mvivo инструкции, и я обнаружил, что у меня была эта ошибка:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ssigdl.sequence' doesn't exist 

В этом link я нашел ответ.В основном компания имеет эту аннотацию

@GeneratedValue(strategy = GenerationType.AUTO) 

который в сочетании с MySQL является причиной ошибок, поэтому я использовал следующую аннотацию вместо:

@GeneratedValue(strategy = GenerationType.IDENTITY) 

Спасибо за вашу помощь!

+0

Вы можете заполнить свои '(...)' метки фактическими сообщениями об ошибках (по крайней мере, один или два из них)? Трудно сказать, почему тест потерпел неудачу, иначе. – kevin628

+0

Вы не поверите, но это именно то, что делает ошибка. Может быть, консоль скрывает ошибку, и я не знаю, как получить полную ошибку – Jessai

+0

, если вы находитесь в Eclipse (или Spring Tool Suite), обычно вы можете щелкнуть эти эллипсы и разворачивать трассировку стека или сообщение об ошибке. – kevin628

ответ

3

Для получения информации об ошибках проверки откройте «Навигация» (меню Windows > Show views > Navigator) и просмотрите target/surefire-reports. Там вы можете найти все результаты тестового прогона.

Why the integration tests are failing?

Посмотрите на com.ssigdl.sirc.domain. * Тест * файлы. Там вы найдете все результаты и трассировку трассировки теста

Did I have a mistake in the spring roo commands?

Я так не думаю. Возможно, вы должны настроить тест, чтобы настроить его. Например, настройте службу DOD (Data on demand), чтобы получить согласованные данные для запуска теста.

Does this error affect in some way to my application?

Если проблема (как я полагаю,) является то, что тест делать что-то не так с данными, вы можете запустить приложение идеально, если обрабатывать данные в правильном пути на услуги.

На мой взгляд, я советую вам исправить интеграционный тест, созданный Roo, чтобы он запускался.

Думайте, что Roo просто сгенерирует шаблон для проверки (и только для операции CRUD adn find) вашей сущности, но нет способа сообщить ему логику приложения или специальные правила в таблицах базы данных. Такие вещи всегда являются вашей ответственностью (иногда это выглядит как магия, но ее нет ;-)).

Смежные вопросы