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
@@ -84,8 +84,8 @@
     'ArcanistGitHookPreReceiveWorkflow' => 'workflow/ArcanistGitHookPreReceiveWorkflow.php',
     'ArcanistGoLintLinter' => 'lint/linter/ArcanistGoLintLinter.php',
     'ArcanistGoLintLinterTestCase' => 'lint/linter/__tests__/ArcanistGoLintLinterTestCase.php',
-    'ArcanistGoTestResultParser' => 'unit/engine/ArcanistGoTestResultParser.php',
-    'ArcanistGoTestResultParserTestCase' => 'unit/engine/__tests__/ArcanistGoTestResultParserTestCase.php',
+    'ArcanistGoTestResultParser' => 'unit/parser/ArcanistGoTestResultParser.php',
+    'ArcanistGoTestResultParserTestCase' => 'unit/parser/__tests__/ArcanistGoTestResultParserTestCase.php',
     'ArcanistHLintLinter' => 'lint/linter/ArcanistHLintLinter.php',
     'ArcanistHLintLinterTestCase' => 'lint/linter/__tests__/ArcanistHLintLinterTestCase.php',
     'ArcanistHelpWorkflow' => 'workflow/ArcanistHelpWorkflow.php',
@@ -138,7 +138,7 @@
     'ArcanistPhpLinterTestCase' => 'lint/linter/__tests__/ArcanistPhpLinterTestCase.php',
     'ArcanistPhpcsLinter' => 'lint/linter/ArcanistPhpcsLinter.php',
     'ArcanistPhpcsLinterTestCase' => 'lint/linter/__tests__/ArcanistPhpcsLinterTestCase.php',
-    'ArcanistPhpunitTestResultParser' => 'unit/engine/ArcanistPhpunitTestResultParser.php',
+    'ArcanistPhpunitTestResultParser' => 'unit/parser/ArcanistPhpunitTestResultParser.php',
     'ArcanistPhrequentWorkflow' => 'workflow/ArcanistPhrequentWorkflow.php',
     'ArcanistPhutilLibraryLinter' => 'lint/linter/ArcanistPhutilLibraryLinter.php',
     'ArcanistPhutilTestCase' => 'unit/engine/phutil/ArcanistPhutilTestCase.php',
@@ -174,7 +174,7 @@
     'ArcanistSvnHookPreCommitWorkflow' => 'workflow/ArcanistSvnHookPreCommitWorkflow.php',
     'ArcanistTasksWorkflow' => 'workflow/ArcanistTasksWorkflow.php',
     'ArcanistTestCase' => 'infrastructure/testing/ArcanistTestCase.php',
-    'ArcanistTestResultParser' => 'unit/engine/ArcanistTestResultParser.php',
+    'ArcanistTestResultParser' => 'unit/parser/ArcanistTestResultParser.php',
     'ArcanistTextLinter' => 'lint/linter/ArcanistTextLinter.php',
     'ArcanistTextLinterTestCase' => 'lint/linter/__tests__/ArcanistTextLinterTestCase.php',
     'ArcanistTimeWorkflow' => 'workflow/ArcanistTimeWorkflow.php',
@@ -202,7 +202,7 @@
     'ArcanistXHPASTLinterTestCase' => 'lint/linter/__tests__/ArcanistXHPASTLinterTestCase.php',
     'ArcanistXMLLinter' => 'lint/linter/ArcanistXMLLinter.php',
     'ArcanistXMLLinterTestCase' => 'lint/linter/__tests__/ArcanistXMLLinterTestCase.php',
-    'ArcanistXUnitTestResultParser' => 'unit/engine/ArcanistXUnitTestResultParser.php',
+    'ArcanistXUnitTestResultParser' => 'unit/parser/ArcanistXUnitTestResultParser.php',
     'CSharpToolsTestEngine' => 'unit/engine/CSharpToolsTestEngine.php',
     'ComprehensiveLintEngine' => 'lint/engine/ComprehensiveLintEngine.php',
     'NoseTestEngine' => 'unit/engine/NoseTestEngine.php',
@@ -212,7 +212,7 @@
     'PhutilUnitTestEngineTestCase' => 'unit/engine/__tests__/PhutilUnitTestEngineTestCase.php',
     'PytestTestEngine' => 'unit/engine/PytestTestEngine.php',
     'XUnitTestEngine' => 'unit/engine/XUnitTestEngine.php',
-    'XUnitTestResultParserTestCase' => 'unit/engine/__tests__/XUnitTestResultParserTestCase.php',
+    'XUnitTestResultParserTestCase' => 'unit/parser/__tests__/XUnitTestResultParserTestCase.php',
   ),
   'function' => array(),
   'xmap' => array(
diff --git a/src/unit/engine/ArcanistGoTestResultParser.php b/src/unit/parser/ArcanistGoTestResultParser.php
rename from src/unit/engine/ArcanistGoTestResultParser.php
rename to src/unit/parser/ArcanistGoTestResultParser.php
diff --git a/src/unit/engine/ArcanistPhpunitTestResultParser.php b/src/unit/parser/ArcanistPhpunitTestResultParser.php
rename from src/unit/engine/ArcanistPhpunitTestResultParser.php
rename to src/unit/parser/ArcanistPhpunitTestResultParser.php
diff --git a/src/unit/engine/ArcanistTestResultParser.php b/src/unit/parser/ArcanistTestResultParser.php
rename from src/unit/engine/ArcanistTestResultParser.php
rename to src/unit/parser/ArcanistTestResultParser.php
diff --git a/src/unit/engine/ArcanistXUnitTestResultParser.php b/src/unit/parser/ArcanistXUnitTestResultParser.php
rename from src/unit/engine/ArcanistXUnitTestResultParser.php
rename to src/unit/parser/ArcanistXUnitTestResultParser.php
diff --git a/src/unit/engine/__tests__/ArcanistGoTestResultParserTestCase.php b/src/unit/parser/__tests__/ArcanistGoTestResultParserTestCase.php
rename from src/unit/engine/__tests__/ArcanistGoTestResultParserTestCase.php
rename to src/unit/parser/__tests__/ArcanistGoTestResultParserTestCase.php
diff --git a/src/unit/engine/__tests__/XUnitTestResultParserTestCase.php b/src/unit/parser/__tests__/XUnitTestResultParserTestCase.php
rename from src/unit/engine/__tests__/XUnitTestResultParserTestCase.php
rename to src/unit/parser/__tests__/XUnitTestResultParserTestCase.php