2012-01-24 3 views
4

Итак, у меня есть небольшой интеграционный тест, в котором всего 5 тестов. Выполнение этого теста исключительно приводит ко всем пройденным тестам. Однако запуск всего тестового набора приводит к 4 ошибкам тестирования. 5.Загрязнение окружающей среды Grails 2.0?

Я недавно обновился до grails-2.0 с 1.3.7, и я переключился с hsqldb на h2.

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

модель домена

domain-model

Интеграция:

class SeriesIntegrationTests extends GrailsUnitTestCase { 
    Series series 
    Episode episode 

    protected void setUp() { 
     super.setUp() 
     series = new Series(ttdbId: 2348); 
     episode = new Episode(ttdbId: 2983, season: 0, episodeNumber: 0, series: series); 
    } 

    protected void tearDown() { 
     super.tearDown() 
    } 

    void testCreateSeries() { 
     series.save() 
     assertFalse("should not have validation errors : $series.errors", series.hasErrors()) 
     assertEquals("should be one series stored in db", 1, Series.count()) 
    } 

    void testCreateEpisode() { 
     series.save() 
     episode.save() 
     assertFalse("should not have validation errors : $episode.errors", episode.hasErrors()) 
     assertEquals("should be one episode stored in db", 1, Episode.count()) 
    } 

    void testCreateSeriesAndAddEpisode() { 
     series.addToEpisodes(episode) 
     series.save(flush: true) 
     series.refresh() 
     assertEquals("series should contain one episode", 1, series.episodes.size()) 
    } 

    void testDeleteSeriesAndCascadeToEpisode() { 
     series.addToEpisodes(episode) 
     series.save(flush: true) 
     series.delete(flush: true) 
     assertEquals(0, Episode.count()) 
     assertEquals(0, Series.count()) 

    } 

    void testDeleteSeriesAndCascadeToBackdropImage() { 
     series.backdrop = new Image(); 
     series.backdrop.binaryData = new byte[0] 
     series.save(flush: true) 

     assertFalse(series.hasErrors()) 
     assertEquals(1, Image.count()) 

     series.delete(flush: true) 
     assertEquals(0, Image.count()) 
    } 
} 
+0

Вы гораздо чаще получаете помощь, если вы показываете соответствующий код. –

+0

Там вы идете ... – netbrain

+0

Является ли сериейIntegrationTests в каталоге/test/unit или в каталоге/test/integration? –

ответ

0

Мое решение по модернизации всех модульных испытаний на метод grails 2.0 для проведения тестов. Когда это было сделано, каждое испытание прошло. Похоже, что модуль тестирует как-то загрязненные интеграционные тесты. Но только на некоторых аппаратных конфигурациях.

1

У меня была аналогичная проблема при переходе от 1.3.7 до 2.0. Тесты интеграции были нормально при запуске с

grails test-app --integration 

но потерпели неудачу при запуске с

grails test-app 

Я установил весь путь преобразования модульных тестов в Grails теста 2.0 (с использованием аннотаций).

+0

По-прежнему такое же количество неудачных тестов с обеими командами. Тем не менее, на моей машине-разработчике все прекрасно и денди. нет неудачных тестов, которые так когда-либо. Но на сервере CI он не выполняет эти тесты. – netbrain

+0

Вы воссоздаете базу данных на CI каждый раз, когда выполняются тесты? Если это не так, это может привести к ошибкам, поскольку вы предполагаете, что у вас нет предыдущих объектов в БД. Кроме того, эти тесты не похожи на то, что они будут обладать большой ценностью, поскольку они в основном тестируют поведение Grails, а не какой-либо написанный вами код. –

+0

«create-drop» указан в конфиге. Таким образом, база данных должна быть удалена при каждом запуске. – netbrain

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