Inquinamento del test di integrazione Grails 2.0?
-
13-11-2019 - |
Domanda
Quindi ho un piccolo test di integrazione che ospita 5 test in totale. L'esecuzione di quel test si traduce esclusivamente in tutti i test superati. Tuttavia, l'esecuzione della mia intera suite di test si traduce in 4 guasti ai test del 5.
Sono appena stato aggiornato a Grails-2.0 da 1.3.7 e sono passato da HSQLDB a H2.
Qualcuno ha dei suggerimenti in quale direzione dovrei cercare per risolvere questo problema (inquinamento del test)?
Modello di dominio
Test di integrazione:
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())
}
}
Soluzione 2
La mia soluzione per aggiornare tutti i test unitari al metodo Grails 2.0 per eseguire i test. Quando è stato fatto, ogni test è passato. Quindi sembra che i test unitari in qualche modo inquinati test di integrazione. Ma solo su determinate configurazioni hardware.
Altri suggerimenti
Ho avuto un problema simile quando mi sono spostato da 1.3.7 a 2,0. I test di integrazione erano OK quando sono stati lanciati con
grails test-app --integration
ma stavano fallendo quando sono stati lanciati con
grails test-app
Ho risolto tutto convertendo i test unitari in test Grails 2.0 (usando annotazioni).