anchor.diff:        ...<String>['-r', 'compact'],
         '--concurrency=$concurrency',
         if (isDebug) '--pause-after-load',
  +      // Don't pollute logs with output from tests that are expected to fail.
  +      if (expectFailure)
  +        '--reporter=name-only',
         '--platform=${SupportedBrowsers.instance.supportedBrowserToPlatform[browser]}',
         '--precompiled=${environment.webUiRootDir.path}/build',
         SupportedBrowsers.instance.browserToConfiguration[browser],
         '--',
         ...testFiles.map((f) => f.relativeToWebUi).toList(),
       ];
  +
  +    if (expectFailure) {
  +      hack.registerReporter(
  +        'name-only',
  +        hack.ReporterDetails(
  +        'Prints the name of the test, but suppresses all other test output.',
  +        (_, hack.Engine engine, __) => NameOnlyReporter(engine)),
  +      );
  +    }
   
       hack.registerPlatformPlugin(<Runtime>[
         SupportedBrowsers.instance.supportedBrowsersToRuntimes[browser]
  
positive.code: }
  
  class TestFailureException implements Exception {}
  
negative.code:     if (expectFailure) {
        if (io.exitCode != 0) {
          // It failed, as expected.
          print('Test successfully failed, as expected.');
          io.exitCode = 0;
        } else {
          io.stderr.writeln(
  