diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -88,6 +88,7 @@
     'ArcanistHgProxyServer' => 'hgdaemon/ArcanistHgProxyServer.php',
     'ArcanistHgServerChannel' => 'hgdaemon/ArcanistHgServerChannel.php',
     'ArcanistHookAPI' => 'repository/hookapi/ArcanistHookAPI.php',
+    'ArcanistInfrastructureTestCase' => '__tests__/ArcanistInfrastructureTestCase.php',
     'ArcanistInlinesWorkflow' => 'workflow/ArcanistInlinesWorkflow.php',
     'ArcanistInstallCertificateWorkflow' => 'workflow/ArcanistInstallCertificateWorkflow.php',
     'ArcanistJSHintLinter' => 'lint/linter/ArcanistJSHintLinter.php',
@@ -265,6 +266,7 @@
     'ArcanistHelpWorkflow' => 'ArcanistBaseWorkflow',
     'ArcanistHgClientChannel' => 'PhutilProtocolChannel',
     'ArcanistHgServerChannel' => 'PhutilProtocolChannel',
+    'ArcanistInfrastructureTestCase' => 'ArcanistTestCase',
     'ArcanistInlinesWorkflow' => 'ArcanistBaseWorkflow',
     'ArcanistInstallCertificateWorkflow' => 'ArcanistBaseWorkflow',
     'ArcanistJSHintLinter' => 'ArcanistExternalLinter',
diff --git a/src/__tests__/ArcanistInfrastructureTestCase.php b/src/__tests__/ArcanistInfrastructureTestCase.php
new file mode 100644
--- /dev/null
+++ b/src/__tests__/ArcanistInfrastructureTestCase.php
@@ -0,0 +1,13 @@
+<?php
+
+final class ArcanistInfrastructureTestCase extends ArcanistTestCase {
+  /**
+   * This is more of an acceptance test case instead of a unit test. It verifies
+   * that all symbols can be loaded correctly. It can catch problems like
+   * missing methods in descendants of abstract base classes.
+   */
+  public function testEverythingImplemented() {
+    id(new PhutilSymbolLoader())->selectAndLoadSymbols();
+    $this->assertTrue(true);
+  }
+}