Closed Bug 1123837 Opened 9 years ago Closed 9 years ago

Refactor/reconsider the slowest tests

Categories

(Webtools Graveyard :: Air Mozilla, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: peterbe, Assigned: peterbe)

Details

Some tests are MUCH slower than the rest. We currently have ~550 integration tests (aka django unit tests). 
The top 10 slowest tests take up 38% of the total time it takes to run all tests. 

Used nose-timer (https://github.com/mahmoudimus/nose-timer/) and ran the tests over and over and then analyzed the timings. The top 10 slowest tests are:

manage.tests.views.test_vidlymedia.TestVidlyMedia.test_vidly_media               1.46 3.013 %
manage.tests.views.test_approvals.TestApprovals.test_approval_reconsider         1.42 2.93 %
uploads.tests.test_views.TestUploads.test_save_on_an_active_event_edit           1.34 2.752 %
manage.tests.views.test_vidlymedia.TestVidlyMedia.test_vidly_media_with_status   1.31 2.706 %
manage.tests.views.test_participants.TestParticipants.test_participant_pages     0.78 1.602 %
comments.tests.test_views.TestComments.test_basic_event_data                     0.76 1.574 %
main.tests.test_views.TestEventEdit.test_edit_recruitmentmessage                 0.48 0.987 %
main.tests.test_views.TestPages.test_picture_over_placeholder                    0.47 0.972 %
manage.tests.views.test_events.TestEvents.test_overwrite_old_slug                0.46 0.943 %
test_views.TestRoku.test_event_duration                                          0.44 0.912 %

It's these that take up about 40% of the whole time. 

I suspect much of the problem lies with depending on `cache.clear()` in the `tearDown()` method.
Gah! I copied the wrong number. It's not 38% of the total time. It's 18%. You can see that by summing the percentage column on the right for those top 10. Still a pretty big number.
With https://github.com/mozilla/airmozilla/pull/184 when I run the tests now the top 10 slowest tests look like this now::

airmozilla.comments.tests.test_views.TestComments.test_basic_event_data: 0.7924s
test_views.TestRoku.test_event_duration: 0.4506s
airmozilla.main.tests.test_views.TestEventEdit.test_edit_recruitmentmessage: 0.4171s
airmozilla.main.tests.test_views.TestPages.test_picture_over_placeholder: 0.3831s
airmozilla.manage.tests.views.test_events.TestEvents.test_overwrite_old_slug: 0.3731s
test_views.TestRoku.test_channel_feed: 0.3397s
airmozilla.manage.tests.views.test_usersandgroups.TestUsersAndGroups.test_group_edit: 0.3067s
airmozilla.main.tests.test_views.TestPages.test_executive_summary: 0.2801s
airmozilla.manage.tests.views.test_dashboard.TestDashboard.test_dashboard_data: 0.2794s
airmozilla.manage.tests.views.test_discussionsandcomments.TestDiscussionAndComments.test_create_discussion: 0.2776s

Their total is now 3.9 seconds out of the new total of 55.6 seconds. So the top 10 only take 7%.
Assignee: nobody → peterbe
Status: NEW → ASSIGNED
I'm going to call this done because it has been addressed after all and elsewise the bug would never be closeable.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Depends on: 1223840
No longer depends on: 1223840
Depends on: 1223871
No longer depends on: 1223871
Product: Webtools → Webtools Graveyard
You need to log in before you can comment on or make changes to this bug.