[
https://issues.apache.org/jira/browse/OOZIE-1597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13803649#comment-13803649
]
Robert Kanter commented on OOZIE-1597:
--------------------------------------
{{TestSLAEventGeneration.testWorkflowJobSLANew}} is another example where we
can't simply call {{cleanUpDBTables()}} for the same reason.
> Cleanup database before every test
> ----------------------------------
>
> Key: OOZIE-1597
> URL: https://issues.apache.org/jira/browse/OOZIE-1597
> Project: Oozie
> Issue Type: Improvement
> Components: tests
> Affects Versions: trunk
> Reporter: Robert Kanter
> Assignee: Robert Kanter
>
> While investigating a flakey test
> ({{org.apache.oozie.sla.TestSLAJobEventListener.testOnJobEvent}}) I realized
> that some of the flakey SLA tests that I've seen lately are the same issue:
> The database has some leftover stuff from a previous test that its not
> expecting.
> Normally this is easy to fix because we can simply call
> {{cleanUpDBTables()}}. However, {{cleanUpDBTables}} requires some of the
> {{Services}} to be running, so you have to call it after starting
> {{Services}}; but, some of the failures were occurring during Services
> initialization (specifically when {{SLAService}} initializes the
> {{SLACalculatorMemory}}, which tries to load some data from the database,
> which may be incomplete (e.g. SLA registration for a job that doesn't
> exist)). So, in this case, we can't call {{cleanUpDBTables()}} before or
> after starting {{Services}}.
> This brings the larger issue that we should be cleaning up the database
> before every test anyway to make sure that the tests are truly independent
> and to prevent harmful leaking (just like we did a while back with the
> {{Services}}). I think we should have {{XTestCase.setup()}} call
> {{cleanUpDBTables()}} so that every test automatically it (and handle the
> {{Services}} dependency appropriately).
--
This message was sent by Atlassian JIRA
(v6.1#6144)