~/talk

Integration testing with Bazel

Talkat BazelCon 2017 · 2017-11-06..11-07· [testing]
links:none on file
slides:none on file

Dropbox migrates integration tests into Bazel by building a declarative services framework that encodes service binaries, a service daemon rule with HTTP health checks, and a dependency graph so Bazel starts services before tests run. A service controller (aka service cuddle) and svc_lib let tests create, stop and restart services dynamically; itest opens a debug shell. The system runs up to 107 services with a 58s critical startup, works but inflates CI memory and encourages excessive end-to-end tests, so unit-test incentives follow.

AI-written summary · about

  1. 0:00Introduction
  2. 1:07Dropbox dev infra
  3. 2:34Integration testing challenges
  4. 5:01Services framework for Bazel
  5. 7:26Basic integration test
  6. 8:51Tests with service dependencies
  7. 9:58Service dependencies in Bazel
  8. 10:43One-shot services setup
  9. 11:25Dynamic service control
  10. 12:49Service controller daemon
  11. 13:32Declarative service config benefits
  12. 14:37Standardizing dev workflows
  13. 15:21No to non-hermetic tests
  14. 16:26Interactive development
  15. 19:00Services framework limits
  16. 21:53Did integration testing get too easy?
  17. 22:57Performance costs of service trees
  18. 25:10Learning from testing literature
  19. 25:52Unit testing over integration
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.