flakytest.dev anze3db flakytest
Profiles / #6

Passed Run of Oct 20, 18:17

CI github-actions:test · 43c4eda main dirty · pass/fail report
short_tests 5 tests finished faster than one sample (1ms), so they have timings but no breakdown. That's expected for tests this fast.
Wall time
32.48 s
1 worker
Test time
26.36 s
sum of test durations
Tests
235
235 passed
Profiler
tachyon
1000 Hz · 22,030 samples · Python 3.15.0 · flakytest 2026.0b1
Peak memory
171 MB
test process

Where the time goes

Test time by category
  • Database11.90 s
  • Libraries6.06 s
  • Migrations2.61 s
  • Password hashing1.91 s
  • DB schema1.65 s
  • Templates590 ms
  • Serialization461 ms
  • App code403 ms
  • Imports292 ms
  • Unsampled146 ms
  • pytest142 ms
  • Deep copies120 ms
  • Factories34 ms
  • Test code21 ms
  • Waiting19 ms
  • Cache8 ms
  • Mocking7 ms
  • Logging4 ms

Session timeline

Tests
24.94 s
Startup
5.82 s
Collection
289 ms
Between tests
761 ms
Session teardown
494 ms
Test phases
Setup 5.38 s Call 20.83 s Teardown 158 ms

Fix next

Ranked by the time each fix saves per run
1

Run tests in parallel on all 2 CPUs

Tests run one at a time: 26.4s of test time on a 2-CPU machine. With pytest-xdist this could take about 13.2s.

High Parallelism
13.18 s per run
Fix: pip install pytest-xdist, then run pytest -n auto (add it to addopts, or only in CI). pytest-django creates a separate test database per worker automatically.
Details

Tests must not share state: files in fixed paths, ports, a shared database without per-worker names, or module globals. Run with -p randomly first to shake out order dependencies.

Documentation

2

Use plain static file storage in tests

Static file storage/manifest handling costs 11.5s.

High App code
11.52 s per run
Fix: In test settings use STORAGES["staticfiles"] = {"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"} so templates don't need a manifest.
Details

Where:

  • apps/api/tests.py:487 ProfileUploadTest.upload · 623 ms
  • apps/mcp/tests.py:66 McpTest.post · 582 ms
  • ft/tests.py:203 TestAccountSettings.test_change_password · 420 ms
  • apps/orgs/tests.py:28 SignupTest.test_signing_up_creates_an_organization · 291 ms
  • apps/projects/urls.py:498 project_profile · 251 ms
  • ft/tests.py:159 TestAccountPages.test_signup · 236 ms
  • apps/api/urls.py:72 api_request.<locals>.decorator.<locals>.wrapped_view · 215 ms
  • ft/tests.py:96 TestTrubleshootingPage.test_troubleshooting · 213 ms
  • ft/tests.py:198 TestAccountSettings.test_change_password · 206 ms
  • apps/api/tests.py:58 TestInvalidIngest.test_ingest_invalid · 199 ms

Most affected tests:

  • ft/tests.py::TestAccountSettings::test_change_password
  • apps/orgs/tests.py::SignupTest::test_signing_up_creates_an_organization
  • apps/projects/tests.py::ProjectPagesTest::test_dashboard_filters
  • ft/tests.py::TestAccountPages::test_signup
  • apps/api/tests.py::ProfileUploadTest::test_missing_parts_mark_the_profile_incomplete
  • ft/tests.py::TestTrubleshootingPage::test_troubleshooting
  • apps/projects/tests.py::ProfilePagePaginationTest::test_slowest_tests_first_then_the_next_page
  • apps/api/tests.py::TestInvalidIngest::test_ingest_invalid
3

Disable django-debug-toolbar in tests

django-debug-toolbar is installed in the test settings and costs 6.7s.

High App code
6.75 s per run
Fix: Only add debug_toolbar to INSTALLED_APPS and MIDDLEWARE when not testing (e.g. `if DEBUG and not TESTING:`).
Details

Where:

  • ft/tests.py:203 TestAccountSettings.test_change_password · 420 ms
  • apps/orgs/tests.py:28 SignupTest.test_signing_up_creates_an_organization · 276 ms
  • apps/projects/urls.py:498 project_profile · 251 ms
  • ft/tests.py:159 TestAccountPages.test_signup · 236 ms
  • apps/api/urls.py:72 api_request.<locals>.decorator.<locals>.wrapped_view · 215 ms
  • ft/tests.py:198 TestAccountSettings.test_change_password · 206 ms
  • apps/projects/tests.py:88 IndexPageTest.test_index_page · 146 ms
  • apps/projects/urls.py:49 find_project · 128 ms
  • apps/orgs/views.py:33 org_shell · 125 ms
  • apps/projects/urls.py:40 can_manage_project · 118 ms

Most affected tests:

  • ft/tests.py::TestAccountSettings::test_change_password
  • apps/orgs/tests.py::SignupTest::test_signing_up_creates_an_organization
  • apps/projects/tests.py::ProjectPagesTest::test_dashboard_filters
  • ft/tests.py::TestAccountPages::test_signup
  • apps/api/tests.py::ProfileUploadTest::test_missing_parts_mark_the_profile_incomplete
  • apps/projects/tests.py::IndexPageTest::test_index_page
  • apps/projects/tests.py::ProfilePagePaginationTest::test_slowest_tests_first_then_the_next_page
  • apps/api/tests.py::ProfileUploadTest::test_upload_adds_migrations_per_worker_insight

Documentation

4

Repeated queries (N+1) in the code under test

27 tests run the same query 10+ times, e.g. 180x in test_seed_demo. N+1 queries slow the tests and production alike.

High Database
3.46 s per run
Fix: Django: fetch related rows in one query with select_related() for foreign keys and prefetch_related() for reverse/many-to-many relations, then lock the count in with assertNumQueries (or pytest-django's django_assert_num_queries).
Details

This changes application code, so it speeds up production too; the tests stay as they are.

  • 180x in test_seed_demo: SELECT "projects_test"."id", "projects_test"."name", "projects_test"."project_id", "projects_test"."slug", "projects_test"."date_last_run", "projects_test"."date_first_seen", "projects_test"."first_commit_id", "projects_test"."muted" FROM "projects_test" WHERE ("projects_test"."name" = %s AND "proj…
  • 22x in test_dashboard_filters: SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
  • 21x in test_configure_page: SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
  • 20x in test_index: SELECT "django_content_type"."model" AS "model" FROM "django_content_type" WHERE "django_content_type"."app_label" = %s
  • 20x in test_daily_stats_count_a_profile_once_every_part_is_in: SELECT "projects_profilepart"."id", "projects_profilepart"."profile_id", "projects_profilepart"."index", "projects_profilepart"."count", "projects_profilepart"."checksum", "projects_profilepart"."status", "projects_profilepart"."error", "projects_profilepart"."tests_count", "projects_profilepart"."…

Most affected tests:

  • apps/projects/tests.py::SeedDemoCommandTest::test_seed_demo
  • apps/projects/tests.py::ProjectPagesTest::test_dashboard_filters
  • apps/projects/tests.py::ProjectPagesTest::test_configure_page
  • apps/api/tests.py::TestApiIndex::test_index
  • apps/api/tests.py::ProfileUploadTest::test_daily_stats_count_a_profile_once_every_part_is_in
  • apps/api/tests.py::IngestStartEndpointTest::test_all_test_status_types
  • apps/api/tests.py::IngestStartEndpointTest::test_details_are_kept_for_failures_only
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_end_after_progress

Documentation

5

Make the test database server skip durability work

Tests spend 16.1s (61%) in the database. Test databases don't need to survive a crash, so the server can skip flushing to disk.

High Database
3.23 s per run
Fix: For a PostgreSQL test server (Docker/CI service) start it with -c fsync=off -c synchronous_commit=off -c full_page_writes=off, and put its data directory on tmpfs; for MySQL use --innodb-flush-log-at-trx-commit=0 --skip-log-bin. Never on a server with data you need.
Details

Only affects crash safety of the throwaway test server; query behaviour is identical.

Where:

  • apps/projects/models.py:466 Profile.save · 323 ms
  • apps/projects/profiles.py:313 write_snapshots · 259 ms
  • apps/api/urls.py:72 api_request.<locals>.decorator.<locals>.wrapped_view · 213 ms
  • apps/projects/environments.py:63 get_or_create_environment · 204 ms
  • apps/projects/tests.py:953 ProjectPagesTest.setUp · 200 ms
  • apps/api/tests.py:76 IngestStartEndpointTest.join_workers · 195 ms
  • apps/projects/profiles.py:458 write_perfs · 185 ms
  • apps/projects/rollups.py:88 add_perfs · 171 ms
  • apps/projects/models.py:230 TestManager.upsert · 159 ms
  • apps/api/tests.py:73 IngestStartEndpointTest.setUp · 149 ms

Most affected tests:

  • apps/api/tests.py::TestApiIndex::test_index
  • apps/projects/tests.py::SeedDemoCommandTest::test_seed_demo
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_progress_end
  • apps/projects/tests.py::ProjectPagesTest::test_configure_page
  • apps/projects/tests.py::ProfilePagePaginationTest::test_slowest_tests_first_then_the_next_page
  • apps/api/tests.py::IngestStartEndpointTest::test_results_are_counted_and_the_payload_dropped
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_progress_before_start
  • apps/api/tests.py::IngestStartEndpointTest::test_all_test_status_types

Documentation

6

pytest takes a long time before the first test runs

Startup takes 5.8s and collection 289ms on every run, even when you only run one test.

Medium Imports
2.44 s per run
Fix: Set testpaths and norecursedirs (node_modules, .venv, build, docs) so pytest doesn't walk unrelated directories; move heavy imports out of module level in test files and conftest.py into fixtures; check `python -X importtime -m pytest --collect-only -q` for the slowest imports.
Details
  • .venv/bin/pytest (289ms)
  • .venv/bin/pytest (5.8s)

Documentation

7

Stop re-running migrations on every test run

Migrations take 2.6s per run, before the first test can start.

Medium Migrations
2.35 s per run
Fix: Run with --reuse-db (add it to addopts in pytest.ini/pyproject) so the test database survives between runs; pass --create-db when migrations change. If no test depends on data migrations, --nomigrations builds the schema straight from the models, which is faster still.
Details

CI should still build the database from scratch (no --reuse-db) so broken migrations are caught.

Where:

  • apps/projects/migrations/0012_backfill_session_environments.py:30 backfill · 6 ms
  • apps/projects/migrations/0022_backfill_organizations.py:48 forwards · 5 ms
  • apps/projects/migrations/0025_backfill_slugs_and_numbers.py:28 forwards · 3 ms
  • apps/projects/migrations/0016_profile_parts.py:9 move_documents · 3 ms
  • apps/projects/migrations/0004_project_created_by_project_date_created_and_more.py:12 add_created_by_to_project · 2 ms
  • apps/projects/migrations/0009_auto_20240218_1217.py:12 create_mute_objects · 2 ms
  • apps/projects/migrations/0012_backfill_session_environments.py:24 backfill · 2 ms
  • apps/projects/migrations/0014_backfill_session_counts.py:23 backfill · 2 ms
  • apps/projects/migrations/0015_store_compressed_documents_as_is.py:12 external_storage · 2 ms
  • apps/projects/migrations/0016_profile_parts.py:24 external_storage · 2 ms

Most affected tests:

  • apps/api/tests.py::TestApiIndex::test_index

Documentation

8

Use a fast password hasher in tests

1.9s (7% of test time) is spent hashing passwords. Slow hashing protects real passwords; in tests it only burns CPU.

Medium Password hashing
1.81 s per run
Fix: In your test settings set PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"] (currently PBKDF2PasswordHasher).
Details

Only change the hasher in test settings. Tests that assert on a specific hash format need updating.

Where:

  • ft/tests.py:203 TestAccountSettings.test_change_password · 413 ms
  • apps/orgs/tests.py:194 SuperuserTest.test_superusers_can_open_any_project_but_dont_list_them · 229 ms
  • apps/orgs/tests.py:28 SignupTest.test_signing_up_creates_an_organization · 224 ms
  • ft/tests.py:230 TestAccountSettings.test_projects_only_lists_your_own_even_for_superusers · 223 ms
  • ft/tests.py:159 TestAccountPages.test_signup · 219 ms
  • ft/tests.py:198 TestAccountSettings.test_change_password · 202 ms
  • ft/tests.py:213 TestAccountSettings.test_change_password · 201 ms
  • ft/tests.py:175 TestAccountSettings.setUpTestData · 198 ms

Most affected tests:

  • ft/tests.py::TestAccountSettings::test_change_password
  • apps/orgs/tests.py::SuperuserTest::test_superusers_can_open_any_project_but_dont_list_them
  • apps/orgs/tests.py::SignupTest::test_signing_up_creates_an_organization
  • ft/tests.py::TestAccountSettings::test_projects_only_lists_your_own_even_for_superusers
  • ft/tests.py::TestAccountPages::test_signup

Documentation

9

Use TestCase instead of TransactionTestCase

1.4s goes to flushing every table after tests in 11 TransactionTestCase / transaction=True / live_server tests.

Medium DB schema
1.25 s per run
Fix: Use django.test.TestCase (or @pytest.mark.django_db without transaction=True): it wraps each test in a transaction and rolls back instead of truncating every table. Keep TransactionTestCase only for tests that need real commits (on_commit hooks can use TestCase.captureOnCommitCallbacks).
Details

Tests that rely on commit behaviour, multiple connections or a live server still need a transactional test case.

Most affected tests:

  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_progress_end
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_valid
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_with_git
  • apps/api/tests.py::IngestStartEndpointTest::test_all_test_status_types
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_progress_before_start
  • apps/api/tests.py::ProfileUploadLockTest::test_upload_while_a_part_is_being_processed
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_end_after_progress
  • apps/api/tests.py::IngestStartEndpointTest::test_details_are_kept_for_failures_only

Documentation

10

Tests open new database connections over and over

Connecting to the database takes 959ms.

Low Database
767 ms per run
Fix: Reuse connections: create the engine once per session (not per test) and keep the default pool (NullPool reconnects on every checkout); in Django avoid closing connections in tests (connection.close()/close_old_connections).
Details

Where:

  • apps/api/tests.py:76 IngestStartEndpointTest.join_workers · 175 ms
  • apps/api/tests.py:73 IngestStartEndpointTest.setUp · 95 ms
  • apps/api/tasks.py:266 warm_reports · 67 ms
  • apps/api/urls.py:72 api_request.<locals>.decorator.<locals>.wrapped_view · 51 ms
  • apps/api/tests.py:306 IngestStartEndpointTest.test_details_are_kept_for_failures_only · 14 ms
  • apps/api/tests.py:235 IngestStartEndpointTest.test_ingest_progress_before_start · 13 ms
  • apps/api/tests.py:287 IngestStartEndpointTest.test_all_test_status_types · 12 ms
  • apps/api/tests.py:257 IngestStartEndpointTest.test_ingest_end_after_progress · 12 ms
  • apps/api/tests.py:331 IngestStartEndpointTest.test_results_are_counted_and_the_payload_dropped · 11 ms
  • apps/api/tests.py:988 ProfileUploadQueueTest.test_upload_is_processed_by_the_worker · 11 ms

Most affected tests:

  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_end_after_progress
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_progress_before_start
  • apps/api/tests.py::IngestStartEndpointTest::test_results_are_counted_and_the_payload_dropped
  • apps/api/tests.py::IngestStartEndpointTest::test_all_test_status_types
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_progress_end
  • apps/api/tests.py::ProfileUploadQueueTest::test_upload_is_processed_by_the_worker
  • apps/api/tests.py::IngestStartEndpointTest::test_details_are_kept_for_failures_only
  • apps/orgs/tests.py::SettingsTest::test_create_another_organization
11

Create shared test data in setUpTestData instead of setUp

setUp() runs before every test and takes 887ms in total (db 803ms, library 59ms, factories 12ms) in 13 classes: SettingsTest (3 tests), ProjectsPageTest (5 tests), ProjectEditPage (6 tests), ProjectDeletePage (4 tests).

Low Database
621 ms per run
Fix: Move object creation that tests only read from setUp() into `@classmethod def setUpTestData(cls)`: it runs once per class and each test still sees the original rows (TestCase rolls back to a savepoint).
Details

Since Django 3.2 attributes assigned in setUpTestData are deep-copied per test, so in-memory changes don't leak between tests. Keep objects a test modifies in the database (or re-fetches) as before.

Where:

  • apps/projects/tests.py:953 ProjectPagesTest.setUp · 218 ms
  • apps/api/tests.py:73 IngestStartEndpointTest.setUp · 161 ms
  • apps/projects/tests.py:142 ProjectEditPage.setUp · 69 ms
  • apps/projects/tests.py:218 ProjectCreatePage.setUp · 49 ms
  • apps/projects/tests.py:268 ProjectRunsPage.setUp · 49 ms
  • apps/projects/tests.py:1375 MemoryTest.setUp · 45 ms
  • apps/projects/tests.py:337 ProjectTestsPage.setUp · 43 ms
  • apps/projects/tests.py:100 ProjectsPageTest.setUp · 43 ms
  • apps/orgs/tests.py:167 SettingsTest.setUp · 38 ms
  • apps/projects/tests.py:187 ProjectDeletePage.setUp · 37 ms

Most affected tests:

  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_multiple_sessions
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_with_git
  • apps/api/tests.py::IngestStartEndpointTest::test_details_are_kept_for_failures_only
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_valid
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_end_after_progress
  • apps/api/tests.py::IngestStartEndpointTest::test_ingest_progress_before_start
  • apps/orgs/tests.py::SettingsTest::test_create_another_organization
  • apps/api/tests.py::ProfileUploadLockTest::test_upload_while_a_part_is_being_processed

Documentation

Tests

1–200 of 235, slowest first · click a column to sort this page
Test Outcome Duration Setup Call Teardown Mostly Queries
apps/api/tests.py::TestApiIndex::test_index
passed 3.03 s 2.92 s 115 ms 0.79 ms Migrations 512
132 repeated
apps/projects/tests.py::SeedDemoCommandTest::test_seed_demo
passed 2.03 s 12 ms 2.02 s 1 ms Database 1322
388 repeated
ft/tests.py::TestAccountSettings::test_change_password
passed 1.07 s 211 ms 854 ms 0.23 ms Password hashing 39
14 repeated
apps/projects/tests.py::ProfilePagePaginationTest::test_slowest_tests_first_then_the_next_page
passed 508 ms 246 ms 260 ms 0.99 ms Database 101
19 repeated
apps/projects/tests.py::ProjectPagesTest::test_configure_page
passed 370 ms 306 ms 64 ms 0.18 ms Database 323
65 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_progress_end
passed 368 ms 0.94 ms 367 ms 0.28 ms DB schema 133
58 repeated
apps/api/tests.py::ProfileUploadTest::test_missing_parts_mark_the_profile_incomplete
passed 334 ms 0.85 ms 333 ms 0.18 ms Database 190
43 repeated
apps/orgs/tests.py::SignupTest::test_signing_up_creates_an_organization
passed 326 ms 0.85 ms 324 ms 0.93 ms Password hashing 43
3 repeated
apps/api/tests.py::IngestStartEndpointTest::test_results_are_counted_and_the_payload_dropped
passed 321 ms 1 ms 319 ms 0.37 ms Database 139
58 repeated
apps/api/tests.py::IngestStartEndpointTest::test_all_test_status_types
passed 319 ms 2 ms 316 ms 0.27 ms Database 136
58 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_progress_before_start
passed 315 ms 0.90 ms 313 ms 0.26 ms Database 133
58 repeated
apps/orgs/tests.py::SuperuserTest::test_superusers_can_open_any_project_but_dont_list_them
passed 309 ms 19 ms 290 ms 0.69 ms Password hashing 68
20 repeated
apps/projects/tests.py::ProjectPagesTest::test_dashboard_filters
passed 307 ms 0.91 ms 306 ms 0.19 ms Database 198
57 repeated
apps/projects/tests.py::RealProfileDocumentTest::test_call_tree
passed 307 ms 289 ms 17 ms 0.61 ms Serialization 89
14 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_end_after_progress
passed 304 ms 0.92 ms 303 ms 0.32 ms Database 133
58 repeated
ft/tests.py::TestAccountSettings::test_projects_only_lists_your_own_even_for_superusers
passed 285 ms 0.67 ms 284 ms 0.25 ms Password hashing 70
17 repeated
ft/tests.py::TestAccountPages::test_signup
passed 266 ms 0.90 ms 265 ms 0.21 ms Password hashing 26
apps/api/tests.py::ProfileUploadQueueTest::test_upload_is_processed_by_the_worker
passed 266 ms 2 ms 264 ms 0.40 ms Database 117
56 repeated
apps/mcp/tests.py::McpTest::test_bare_token
passed 240 ms 197 ms 43 ms 0.17 ms Database 219
46 repeated
apps/api/tests.py::IngestStartEndpointTest::test_details_are_kept_for_failures_only
passed 233 ms 1 ms 231 ms 0.56 ms DB schema 107
56 repeated
ft/tests.py::TestTrubleshootingPage::test_troubleshooting
passed 230 ms 11 ms 219 ms 0.22 ms Libraries 5
apps/api/tests.py::ProfileUploadTest::test_upload_adds_migrations_per_runner_insight
passed 229 ms 0.77 ms 228 ms 0.26 ms Database 229
49 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_links_ingest_session
passed 229 ms 0.88 ms 225 ms 3 ms Libraries 96
22 repeated
apps/api/tests.py::ProfileUploadTest::test_reupload_split_differently
passed 226 ms 0.93 ms 225 ms 0.22 ms Database 210
58 repeated
apps/api/tests.py::ProfileUploadTest::test_daily_stats_count_a_profile_once_every_part_is_in
passed 222 ms 0.88 ms 221 ms 0.23 ms Database 224
63 repeated
apps/api/tests.py::TestInvalidIngest::test_ingest_invalid
passed 220 ms 11 ms 208 ms 0.23 ms Libraries 15
apps/projects/tests.py::IndexPageTest::test_index_page
passed 211 ms 10 ms 200 ms 0.59 ms Libraries 6
apps/projects/tests.py::MemoryTest::test_dashboard_shows_the_tests_with_most_memory
passed 203 ms 96 ms 107 ms 0.27 ms Database 150
26 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_valid
passed 202 ms 1 ms 201 ms 0.21 ms DB schema 91
56 repeated
apps/api/tests.py::ProfileUploadLockTest::test_upload_while_a_part_is_being_processed
passed 201 ms 1 ms 199 ms 0.69 ms DB schema 86
56 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_multiple_sessions
passed 201 ms 0.98 ms 199 ms 0.46 ms DB schema 108
56 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_adds_migrations_per_worker_insight
passed 201 ms 0.85 ms 200 ms 0.21 ms Database 149
32 repeated
apps/projects/tests.py::AnalyticsTest::test_category_breakdown
passed 196 ms 186 ms 10 ms 0.23 ms Database 205
48 repeated
apps/orgs/tests.py::ProjectCardsTest::test_cards_show_the_trend_and_the_speed_ups
passed 193 ms 19 ms 174 ms 0.74 ms Database 167
31 repeated
apps/api/tests.py::IngestStartEndpointTest::test_ingest_start_with_git
passed 190 ms 0.94 ms 188 ms 0.35 ms DB schema 96
56 repeated
apps/api/tests.py::ProfileUploadTest::test_reprocessing_a_part_takes_the_profile_out_of_the_daily_stats_until_it_is_done
passed 159 ms 0.82 ms 158 ms 0.20 ms Database 148
40 repeated
apps/api/tests.py::ProfileUploadTest::test_a_changed_part_replaces_the_old_one
passed 158 ms 14 ms 143 ms 0.18 ms Database 113
28 repeated
apps/orgs/tests.py::MembersTest::test_owner_invites_someone_who_signs_up
passed 153 ms 1 ms 151 ms 0.18 ms Database 118
37 repeated
apps/projects/tests.py::ProjectPagesTest::test_projects_page
passed 149 ms 0.64 ms 148 ms 0.19 ms Database 84
22 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_in_parts
passed 148 ms 0.80 ms 147 ms 0.19 ms Database 133
36 repeated
apps/projects/tests.py::LegacyUrlTest::test_by_id
passed 143 ms 65 ms 78 ms 0.21 ms Database 115
32 repeated
apps/projects/tests.py::ProjectPagesTest::test_test_page_per_environment
passed 137 ms 0.87 ms 136 ms 0.19 ms Database 72
20 repeated
apps/projects/tests.py::ProjectPagesTest::test_dashboard
passed 134 ms 0.86 ms 133 ms 0.24 ms Database 78
19 repeated
apps/projects/tests.py::ProjectPagesTest::test_test_page
passed 131 ms 0.78 ms 130 ms 0.28 ms Database 66
16 repeated
apps/projects/tests.py::ProjectPagesTest::test_dashboard_public_by_slug
passed 127 ms 0.84 ms 126 ms 0.20 ms Database 73
19 repeated
apps/projects/tests.py::StorageTest::test_pages_work_after_pruning
passed 126 ms 0.72 ms 125 ms 0.21 ms Database 71
18 repeated
apps/api/tests.py::ProfileUploadTest::test_processing_twice_is_safe
passed 125 ms 0.85 ms 124 ms 0.26 ms Database 102
25 repeated
apps/projects/tests.py::StorageTest::test_an_older_upload_keeps_the_newer_snapshot
passed 125 ms 87 ms 37 ms 0.20 ms Database 128
29 repeated
apps/api/tests.py::ProfileUploadTest::test_complete_profiles_are_not_marked_incomplete
passed 123 ms 0.93 ms 122 ms 0.23 ms Database 105
26 repeated
apps/api/tests.py::ProfileUploadTest::test_a_failed_part_can_be_uploaded_again
passed 118 ms 0.88 ms 117 ms 0.18 ms Database 95
21 repeated
apps/orgs/tests.py::AccessTest::test_members_see_every_project_of_the_organization
passed 117 ms 19 ms 98 ms 0.18 ms Database 54
12 repeated
apps/api/tests.py::ProfileUploadTest::test_reupload_replaces_profile
passed 117 ms 1 ms 115 ms 0.17 ms Database 96
21 repeated
apps/projects/tests.py::FlakyReportCacheTest::test_cached_until_new_results_arrive
passed 116 ms 53 ms 60 ms 3 ms Database 106
20 repeated
apps/projects/tests.py::ProjectPagesTest::test_mute_and_unmute
passed 113 ms 0.88 ms 112 ms 0.19 ms Database 62
16 repeated
apps/orgs/tests.py::SettingsTest::test_create_another_organization
passed 110 ms 30 ms 79 ms 0.19 ms Database 49
12 repeated
apps/projects/tests.py::ProjectPagesTest::test_tests_page
passed 109 ms 0.90 ms 108 ms 0.26 ms Database 56
6 repeated
apps/projects/tests.py::MemoryTest::test_profile_and_test_pages
passed 109 ms 0.81 ms 108 ms 0.20 ms Database 60
18 repeated
apps/projects/tests.py::ProjectPagesTest::test_dashboard_without_profiles
passed 107 ms 1 ms 105 ms 0.30 ms Database 65
7 repeated
apps/projects/tests.py::ProjectDeletePage::test_project_submit
passed 106 ms 0.84 ms 105 ms 0.65 ms Database 49
3 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_json
passed 99 ms 0.87 ms 98 ms 0.19 ms Database 71
17 repeated
apps/mcp/tests.py::McpTest::test_get_overview
passed 93 ms 0.91 ms 92 ms 0.26 ms Database 47
7 repeated
apps/orgs/tests.py::MembersTest::test_roles_and_the_last_owner
passed 93 ms 0.78 ms 91 ms 2 ms Database 45
16 repeated
apps/projects/tests.py::StorageTest::test_prune_old_data
passed 93 ms 0.93 ms 92 ms 0.27 ms Database 107
25 repeated
ft/tests.py::TestTrubleshootingPage::test_troubleshooting_is_only_for_members
passed 93 ms 0.84 ms 92 ms 0.18 ms Database 56
10 repeated
apps/projects/tests.py::ProjectPagesTest::test_run_page
passed 92 ms 0.88 ms 91 ms 0.20 ms Database 52
6 repeated
apps/projects/tests.py::ProjectCreatePage::test_first_project_is_onboarding
passed 91 ms 12 ms 79 ms 0.18 ms Database 56
10 repeated
apps/projects/tests.py::ProjectPagesTest::test_htmx_refresh
passed 90 ms 1 ms 89 ms 0.19 ms Libraries 30
3 repeated
apps/projects/tests.py::TestProjectTestPage::test_project_test_page
passed 89 ms 0.71 ms 89 ms 0.17 ms Database 42
3 repeated
apps/api/tests.py::ProfileUploadTest::test_the_same_upload_twice_changes_nothing
passed 89 ms 0.87 ms 88 ms 0.20 ms Database 68
12 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_gzip_without_content_encoding
passed 88 ms 0.88 ms 87 ms 0.23 ms Database 60
8 repeated
apps/projects/tests.py::FlakyReportTest::test_report
passed 88 ms 71 ms 17 ms 0.18 ms Database 87
30 repeated
apps/projects/tests.py::ProjectsPageTest::test_multiple_projects
passed 87 ms 12 ms 75 ms 0.18 ms Database 49
3 repeated
apps/projects/tests.py::TestProjectTestPage::test_project_test_page_with_durations
passed 86 ms 0.85 ms 85 ms 0.70 ms Database 52
9 repeated
apps/projects/tests.py::MemoryTest::test_memory_tab
passed 86 ms 0.91 ms 85 ms 0.26 ms Database 50
10 repeated
apps/api/tests.py::ProfileUploadTest::test_upload_gzip
passed 85 ms 1 ms 84 ms 0.17 ms Database 61
8 repeated
apps/orgs/tests.py::MembersTest::test_invitations_expire
passed 85 ms 19 ms 65 ms 0.22 ms Database 41
9 repeated
ft/tests.py::TestAccountSettings::test_email
passed 83 ms 0.86 ms 82 ms 0.17 ms Libraries 41
17 repeated
apps/projects/tests.py::ProjectEditPage::test_invalid_form
passed 81 ms 18 ms 63 ms 0.18 ms Database 43
3 repeated
apps/projects/tests.py::ProjectEditPage::test_slug_unique_in_organization
passed 81 ms 0.94 ms 79 ms 0.70 ms Database 50
16 repeated
apps/api/tests.py::IngestEnvironmentTest::test_environment_without_kind_is_guessed_from_the_name
passed 81 ms 16 ms 64 ms 0.17 ms Database 37
apps/projects/tests.py::ProjectPagesTest::test_test_page_without_profiles
passed 80 ms 0.84 ms 79 ms 0.25 ms Database 44
3 repeated
apps/orgs/tests.py::SettingsTest::test_rename
passed 80 ms 0.90 ms 79 ms 0.67 ms Database 52
18 repeated
apps/api/tests.py::TestMute::test_muted_tests
passed 79 ms 14 ms 65 ms 0.25 ms Database 42
ft/tests.py::TestProjectsHome::test_user_logged_in
passed 78 ms 11 ms 67 ms 0.26 ms Database 35
apps/api/tests.py::ProfileUploadTest::test_reject_too_large
passed 78 ms 0.83 ms 76 ms 0.28 ms Libraries 11
ft/tests.py::TestDocsPage::test_linked_from_the_app
passed 77 ms 0.76 ms 76 ms 0.18 ms Database 49
3 repeated
apps/projects/tests.py::ProjectTestsPage::test_project_with_no_tests
passed 77 ms 0.70 ms 76 ms 0.17 ms Database 42
apps/orgs/tests.py::SettingsTest::test_delete
passed 76 ms 0.87 ms 75 ms 0.18 ms Database 48
3 repeated
apps/projects/tests.py::ProjectPagesTest::test_profile_page
passed 76 ms 0.84 ms 75 ms 0.22 ms Libraries 34
apps/api/tests.py::IngestEnvironmentTest::test_same_environment_is_reused
passed 76 ms 0.84 ms 73 ms 3 ms Database 61
12 repeated
apps/projects/tests.py::ProjectsPageTest::test_other_peoples_project
passed 76 ms 0.86 ms 75 ms 0.17 ms Database 52
7 repeated
apps/projects/tests.py::ProjectCreatePage::test_next_project
passed 76 ms 0.78 ms 75 ms 0.18 ms Database 53
9 repeated
apps/projects/tests.py::MigrationInsightsTest::test_replace_insight
passed 75 ms 0.76 ms 0.16 ms 74 ms DB schema 1
apps/api/tests.py::ProfileUploadTest::test_minimal_document
passed 75 ms 0.82 ms 74 ms 0.17 ms Database 49
11 repeated
apps/projects/tests.py::ProjectPagesTest::test_runs_page
passed 73 ms 0.80 ms 72 ms 0.23 ms Database 38
apps/projects/tests.py::ProjectRunsPage::test_project_with_runs
passed 73 ms 0.66 ms 72 ms 0.68 ms Database 41
apps/projects/tests.py::ProjectPagesTest::test_tests_page_flaky_tab
passed 72 ms 0.90 ms 70 ms 0.83 ms Database 40
apps/projects/tests.py::ProjectEditPage::test_project_submit
passed 72 ms 0.89 ms 71 ms 0.23 ms Database 41
9 repeated
apps/projects/tests.py::ProjectRunPage::test_not_logged_in
passed 71 ms 21 ms 50 ms 0.18 ms Database 37
apps/projects/tests.py::ProjectRunsPage::test_not_logged_in
passed 70 ms 19 ms 51 ms 0.19 ms Database 34
apps/projects/tests.py::TestProjectTestPage::test_not_logged_in
passed 70 ms 21 ms 49 ms 0.18 ms Database 37
apps/projects/tests.py::ProjectsPageTest::test_project
passed 69 ms 0.86 ms 68 ms 0.62 ms Database 48
3 repeated
apps/projects/tests.py::ProjectTestsPage::test_not_logged_in
passed 69 ms 21 ms 48 ms 0.18 ms Database 37
apps/projects/tests.py::ProjectRunsPage::test_project_with_no_runs
passed 69 ms 0.86 ms 68 ms 0.18 ms Database 35
apps/projects/tests.py::ProjectRunPage::test_project_with_runs_no_tests
passed 68 ms 0.71 ms 67 ms 0.78 ms Database 35
apps/api/tests.py::TestMute::test_no_muted_tests
passed 67 ms 0.82 ms 65 ms 0.68 ms Database 46
apps/orgs/tests.py::MembersTest::test_owners_revoke_invitations
passed 67 ms 0.66 ms 66 ms 0.21 ms Database 41
6 repeated
apps/projects/tests.py::ProjectPagesTest::test_profiles_page
passed 66 ms 0.85 ms 65 ms 0.22 ms Database 34
apps/projects/tests.py::ProjectsPageTest::test_no_project
passed 66 ms 0.65 ms 65 ms 0.18 ms Database 41
3 repeated
apps/projects/tests.py::ProjectDeletePage::test_not_logged_in
passed 66 ms 19 ms 47 ms 0.18 ms Libraries 33
apps/projects/tests.py::ProjectPagesTest::test_dashboard_without_data_shows_setup
passed 65 ms 0.85 ms 64 ms 0.21 ms Database 41
apps/orgs/tests.py::AccessTest::test_switchers
passed 65 ms 0.86 ms 64 ms 0.80 ms Database 42
apps/projects/tests.py::ProjectCreatePage::test_invalid_form
passed 65 ms 0.86 ms 64 ms 0.17 ms Database 40
3 repeated
ft/tests.py::UnsubscribeTest::test_signed_links
passed 65 ms 10 ms 54 ms 0.65 ms Libraries 17
3 repeated
apps/orgs/tests.py::AccessTest::test_others_dont
passed 64 ms 0.95 ms 63 ms 0.20 ms Libraries 32
10 repeated
apps/projects/tests.py::ProjectPagesTest::test_pending_profile_page
passed 64 ms 0.91 ms 63 ms 0.18 ms Database 34
apps/projects/tests.py::ProjectTestsPage::test_project_with_tests
passed 63 ms 0.88 ms 61 ms 0.80 ms Database 35
apps/projects/tests.py::ProjectPagesTest::test_dashboard_other_users_project
passed 62 ms 0.67 ms 61 ms 0.19 ms Libraries 34
9 repeated
apps/mcp/tests.py::McpTest::test_list_runs
passed 62 ms 0.86 ms 61 ms 0.18 ms Libraries 17
apps/projects/tests.py::ProjectDeletePage::test_project
passed 61 ms 0.86 ms 60 ms 0.17 ms Libraries 31
apps/mcp/tests.py::McpTest::test_list_flaky_tests
passed 61 ms 0.83 ms 60 ms 0.18 ms Database 23
apps/api/tests.py::ProfileUploadTest::test_reject_other_formats
passed 61 ms 0.62 ms 60 ms 0.23 ms Libraries 11
apps/mcp/tests.py::McpTest::test_list_slow_tests
passed 61 ms 0.84 ms 60 ms 0.17 ms Database 23
ft/tests.py::TestTrubleshootingPage::test_troubleshooting_with_project
passed 60 ms 0.88 ms 59 ms 0.79 ms Database 36
apps/orgs/tests.py::MembersTest::test_only_owners_invite_and_manage
passed 60 ms 0.78 ms 59 ms 0.20 ms Database 35
13 repeated
apps/projects/tests.py::ProjectEditPage::test_project
passed 60 ms 0.80 ms 59 ms 0.19 ms Libraries 33
apps/mcp/tests.py::McpTest::test_get_test_by_substring
passed 60 ms 0.64 ms 59 ms 0.17 ms Database 17
apps/projects/tests.py::ProjectPagesTest::test_configure_public
passed 60 ms 0.95 ms 58 ms 0.18 ms Database 33
3 repeated
apps/api/tests.py::IngestEnvironmentTest::test_new_client_environment_and_git_changes
passed 60 ms 0.81 ms 59 ms 0.18 ms Database 38
apps/api/tests.py::TestGithubMarketplaceHookEndpoint::test_github_marketplace_hook
passed 59 ms 11 ms 47 ms 0.61 ms Libraries 8
apps/projects/tests.py::ProjectPagesTest::test_htmx_refresh_run_row
passed 59 ms 0.62 ms 58 ms 0.19 ms Libraries 28
apps/projects/tests.py::ProjectPagesTest::test_private_dashboard_requires_login
passed 59 ms 0.78 ms 58 ms 0.27 ms Libraries 26
apps/api/tests.py::IngestEnvironmentTest::test_old_client_on_unknown_ci
passed 58 ms 0.84 ms 57 ms 0.24 ms Libraries 34
ft/tests.py::TestProjectsHome::test_user_logged_in_with_multiple_projects
passed 58 ms 0.94 ms 57 ms 0.17 ms Database 37
3 repeated
ft/tests.py::TestIndexPage::test_landing_page_when_signed_in
passed 58 ms 0.87 ms 57 ms 0.82 ms Libraries 32
ft/tests.py::TestAccountSettings::test_set_password_for_github_users
passed 58 ms 0.84 ms 56 ms 0.73 ms Libraries 34
10 repeated
apps/projects/tests.py::BackfillSessionEnvironmentsTest::test_backfill
passed 57 ms 10 ms 46 ms 0.61 ms Database 53
29 repeated
apps/projects/tests.py::ProjectRunPage::test_other_peoples_project
passed 56 ms 0.63 ms 55 ms 0.16 ms Libraries 31
apps/api/tests.py::IngestEnvironmentTest::test_old_client_locally
passed 56 ms 0.86 ms 55 ms 0.18 ms Database 34
apps/projects/tests.py::ProjectEditPage::test_other_peoples_project
passed 56 ms 0.86 ms 55 ms 0.16 ms Libraries 33
ft/tests.py::TestCIPage::test_ci
passed 55 ms 13 ms 41 ms 0.70 ms Libraries 5
apps/projects/tests.py::ProjectDeletePage::test_other_peoples_project
passed 55 ms 0.81 ms 54 ms 0.20 ms Database 33
apps/projects/tests.py::LegacyUrlTest::test_private_projects_stay_private
passed 55 ms 0.80 ms 53 ms 0.64 ms Libraries 27
3 repeated
ft/tests.py::TestProjectsHome::test_user_logged_in_without_projects
passed 55 ms 0.86 ms 53 ms 0.59 ms Libraries 30
apps/projects/tests.py::TestProjectTestPage::test_other_peoples_project
passed 55 ms 0.90 ms 54 ms 0.17 ms Libraries 33
9 repeated
apps/mcp/tests.py::McpTest::test_compare_environments
passed 54 ms 0.62 ms 53 ms 0.19 ms Libraries 18
4 repeated
apps/api/tests.py::IngestEnvironmentTest::test_old_client_on_github_actions
passed 54 ms 0.86 ms 53 ms 0.17 ms Database 34
apps/orgs/tests.py::MembersTest::test_members_can_leave
passed 54 ms 0.85 ms 53 ms 0.18 ms Database 28
apps/mcp/tests.py::McpTest::test_get_test
passed 54 ms 0.89 ms 53 ms 0.17 ms Libraries 16
ft/tests.py::TestGetStartedPage::test_get_started
passed 53 ms 10 ms 42 ms 0.93 ms Libraries 5
apps/projects/tests.py::ProjectEditPage::test_not_logged_in
passed 53 ms 0.86 ms 52 ms 0.22 ms Libraries 24
apps/projects/tests.py::ProjectTestsPage::test_other_peoples_project
passed 53 ms 0.84 ms 52 ms 0.17 ms Libraries 28
ft/tests.py::TestDocsPage::test_docs
passed 53 ms 13 ms 39 ms 0.25 ms Libraries 5
ft/tests.py::TestAccountPages::test_static_pages
passed 52 ms 0.89 ms 51 ms 0.68 ms Libraries 5
apps/projects/tests.py::ProjectRunsPage::test_other_peoples_project
passed 52 ms 0.86 ms 51 ms 0.18 ms Libraries 28
apps/mcp/tests.py::McpTest::test_errors
passed 52 ms 0.85 ms 51 ms 0.17 ms Libraries 19
14 repeated
ft/tests.py::TestAccountSettings::test_connections
passed 52 ms 0.86 ms 51 ms 0.17 ms Libraries 24
apps/api/tests.py::ProfileUploadTest::test_invalid_part
passed 52 ms 0.85 ms 51 ms 0.16 ms Libraries 22
8 repeated
apps/projects/tests.py::LegacyUrlTest::test_by_public_slug
passed 51 ms 0.82 ms 50 ms 0.27 ms Libraries 10
apps/api/tests.py::TestInvalidIngest::test_ingest_no_token
passed 51 ms 0.77 ms 50 ms 0.71 ms Libraries 6
ft/tests.py::TestChangelogPage::test_changelog
passed 51 ms 11 ms 39 ms 1 ms Libraries 5
apps/projects/tests.py::MemoryTest::test_reprocessing_doesnt_count_memory_twice
passed 51 ms 0.74 ms 50 ms 0.28 ms Database 59
9 repeated
apps/projects/tests.py::ProjectsPageTest::test_not_logged_in
passed 51 ms 0.92 ms 49 ms 0.18 ms Libraries 24
ft/tests.py::TestAccountPages::test_login
passed 50 ms 10 ms 40 ms 0.25 ms Libraries 5
ft/tests.py::TestIndexPage::test_index
passed 50 ms 9 ms 40 ms 0.20 ms Libraries 6
apps/projects/tests.py::ProjectCreatePage::test_not_logged_in
passed 49 ms 0.72 ms 47 ms 0.63 ms Libraries 24
apps/mcp/tests.py::McpTest::test_get_insights
passed 47 ms 0.69 ms 46 ms 0.23 ms Libraries 10
apps/mcp/tests.py::McpTest::test_get_test_not_found
passed 46 ms 0.83 ms 45 ms 0.19 ms Libraries 13
4 repeated
apps/mcp/tests.py::McpTest::test_list_memory_tests
passed 45 ms 0.87 ms 44 ms 0.17 ms Libraries 10
apps/api/tests.py::ProfileUploadTest::test_reject_invalid_json
passed 44 ms 0.75 ms 43 ms 0.17 ms Libraries 10
apps/mcp/tests.py::McpTest::test_tools_list
passed 44 ms 0.84 ms 43 ms 0.23 ms Libraries 7
apps/api/tests.py::ProfileUploadTest::test_reject_too_large_uncompressed
passed 44 ms 1.00 ms 43 ms 0.20 ms Libraries 10
apps/orgs/tests.py::AccessTest::test_public_projects_are_readable_by_anyone
passed 43 ms 0.86 ms 42 ms 0.24 ms Libraries 9
apps/mcp/tests.py::McpTest::test_initialized_notification
passed 43 ms 0.84 ms 42 ms 0.16 ms Libraries 7
apps/mcp/tests.py::McpTest::test_list_environments
passed 42 ms 0.79 ms 41 ms 0.17 ms Libraries 10
apps/mcp/tests.py::McpTest::test_get_not_allowed
passed 42 ms 0.80 ms 41 ms 0.22 ms Libraries 5
ft/tests.py::TestDocsPage::test_linked_from_the_site
passed 42 ms 1 ms 40 ms 0.66 ms Libraries 6
apps/mcp/tests.py::McpTest::test_batch_of_notifications
passed 42 ms 0.77 ms 41 ms 0.16 ms Libraries 7
apps/api/tests.py::ProfileUploadTest::test_reject_invalid_gzip
passed 42 ms 0.98 ms 41 ms 0.17 ms Libraries 10
apps/mcp/tests.py::McpTest::test_initialize_with_older_and_unknown_versions
passed 41 ms 0.85 ms 40 ms 0.17 ms Libraries 9
apps/mcp/tests.py::McpTest::test_unknown_environment_is_a_tool_error
passed 41 ms 0.83 ms 39 ms 0.75 ms Libraries 9
apps/projects/tests.py::StorageTest::test_reprocessing_a_profile_replaces_its_contribution
passed 40 ms 0.82 ms 39 ms 0.21 ms Database 47
12 repeated
apps/api/tests.py::ProfileUploadTest::test_reject_missing_run
passed 40 ms 0.95 ms 39 ms 0.17 ms Libraries 10
apps/mcp/tests.py::McpTest::test_ping
passed 40 ms 0.81 ms 39 ms 0.24 ms Libraries 7
apps/mcp/tests.py::McpTest::test_batch
passed 39 ms 0.81 ms 38 ms 0.23 ms Database 7
apps/mcp/tests.py::McpTest::test_requires_token
passed 39 ms 0.99 ms 38 ms 0.21 ms Libraries 6
apps/mcp/tests.py::McpTest::test_initialize
passed 39 ms 0.86 ms 38 ms 0.16 ms Libraries 7
apps/api/tests.py::ProfileUploadTest::test_no_token
passed 38 ms 0.81 ms 37 ms 0.17 ms Libraries 6
apps/api/tests.py::ProfileUploadTest::test_get_not_allowed
passed 36 ms 0.87 ms 35 ms 0.17 ms Libraries 5
apps/projects/tests.py::SlugsAndNumbersTest::test_a_taken_number_is_retried
passed 31 ms 18 ms 13 ms 0.25 ms Database 24
3 repeated
apps/projects/tests.py::AnalyticsTest::test_slow_tests_per_environment
passed 31 ms 0.60 ms 30 ms 0.26 ms Database 24
13 repeated
apps/projects/tests.py::AnalyticsTest::test_single_test
passed 28 ms 0.63 ms 28 ms 0.27 ms Database 16
9 repeated
apps/projects/tests.py::AnalyticsTest::test_overview
passed 23 ms 0.84 ms 22 ms 0.20 ms Database 17
apps/orgs/tests.py::SlugTest::test_unique_and_not_reserved
passed 21 ms 12 ms 7 ms 2 ms Database 11
5 repeated
apps/orgs/tests.py::SignupTest::test_github_login_names_it
passed 20 ms 10 ms 10 ms 0.26 ms Database 11
apps/projects/tests.py::MemoryTest::test_stored_and_summed_per_day
passed 19 ms 1 ms 17 ms 0.68 ms Database 23
apps/projects/tests.py::RealProfileDocumentTest::test_processed
passed 19 ms 0.82 ms 17 ms 1 ms Database 13
3 repeated
apps/projects/tests.py::SlugsAndNumbersTest::test_runs_and_profiles_are_numbered_per_project
passed 19 ms 0.91 ms 18 ms 0.17 ms Database 23
6 repeated
apps/projects/tests.py::MemoryTest::test_memory_tests_are_ranked_by_average_peak
passed 16 ms 0.78 ms 15 ms 0.18 ms Database 22
apps/projects/tests.py::AnalyticsTest::test_ci_vs_local
passed 15 ms 0.94 ms 14 ms 0.18 ms Database 13

Slowest fixtures

Exact setup time across the session
Fixture Scope Calls Total Max
_django_setup_unittest class 50 2.93 s 2.91 s
django_db_setup session 1 2.91 s 2.91 s
_unittest_setUpClass_fixture_ProjectPagesTest class 1 304 ms 304 ms
_unittest_setUpClass_fixture_RealProfileDocumentTest class 1 288 ms 288 ms
_unittest_setUpClass_fixture_ProfilePagePaginationTest class 1 245 ms 245 ms
_unittest_setUpClass_fixture_TestAccountSettings class 1 210 ms 210 ms
_unittest_setUpClass_fixture_McpTest class 1 196 ms 196 ms
_unittest_setUpClass_fixture_AnalyticsTest class 1 185 ms 185 ms
_unittest_setUpClass_fixture_MemoryTest class 1 94 ms 94 ms
_unittest_setUpClass_fixture_StorageTest class 1 86 ms 86 ms
_unittest_setUpClass_fixture_FlakyReportTest class 1 69 ms 69 ms
_unittest_setUpClass_fixture_LegacyUrlTest class 1 64 ms 64 ms
_unittest_setUpClass_fixture_FlakyReportCacheTest class 1 52 ms 52 ms
_unittest_setUpClass_fixture_SettingsTest class 1 28 ms 28 ms
_unittest_setUpClass_fixture_ProjectRunPage class 1 20 ms 20 ms