diff --git a/composer.json b/composer.json
index 87128b4a..2c01b906 100644
--- a/composer.json
+++ b/composer.json
@@ -32,7 +32,8 @@
         "symfony/yaml": "2.8.*",
         "symfony/process": "2.8.*",
         "doctrine/common": "*.*",
-        "composer/composer": "1.3.0-RC",
+        "composer/composer": "^1.3",
+        "composer/semver": "^1.0",
         "pimple/pimple": "^3",
         "guzzlehttp/guzzle": "^6.2",
         "docker-php/docker-php": "^1.24",
diff --git a/composer.lock b/composer.lock
index 49e077fa..3bb1a38f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "275805f4fd8dbc70f7f9d200c0f31ac6",
+    "content-hash": "30f93543ba7b1ba06010815ade38bffa",
     "packages": [
         {
             "name": "clue/stream-filter",
@@ -115,16 +115,16 @@
         },
         {
             "name": "composer/composer",
-            "version": "1.3.0-RC",
+            "version": "1.3.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/composer.git",
-                "reference": "a72a8caa9ae569581449cec4a263cf77ead7ecd6"
+                "reference": "989d68725bc8ebf97e795d4feb386f52adb096e3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/composer/zipball/a72a8caa9ae569581449cec4a263cf77ead7ecd6",
-                "reference": "a72a8caa9ae569581449cec4a263cf77ead7ecd6",
+                "url": "https://api.github.com/repos/composer/composer/zipball/989d68725bc8ebf97e795d4feb386f52adb096e3",
+                "reference": "989d68725bc8ebf97e795d4feb386f52adb096e3",
                 "shasum": ""
             },
             "require": {
@@ -188,7 +188,7 @@
                 "dependency",
                 "package"
             ],
-            "time": "2016-12-11T16:04:50+00:00"
+            "time": "2017-03-08T10:06:43+00:00"
         },
         {
             "name": "composer/semver",
@@ -763,15 +763,9 @@
             "version": "8.2.10",
             "source": {
                 "type": "git",
-                "url": "https://github.com/klausi/coder.git",
+                "url": "https://git.drupal.org/project/coder.git",
                 "reference": "c835ff5c1733676fe0d3f3b861e814d570baaa6f"
             },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/klausi/coder/zipball/c835ff5c1733676fe0d3f3b861e814d570baaa6f",
-                "reference": "c835ff5c1733676fe0d3f3b861e814d570baaa6f",
-                "shasum": ""
-            },
             "require": {
                 "ext-mbstring": "*",
                 "php": ">=5.4.0",
@@ -1818,8 +1812,7 @@
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "LGPL-2.1",
-                "GPL-3.0+"
+                "MIT"
             ],
             "authors": [
                 {
@@ -3932,9 +3925,7 @@
     ],
     "aliases": [],
     "minimum-stability": "stable",
-    "stability-flags": {
-        "composer/composer": 5
-    },
+    "stability-flags": [],
     "prefer-stable": true,
     "prefer-lowest": false,
     "platform": [],
diff --git a/src/DrupalCI/Plugin/BuildTask/BuildStep/Testing/Simpletest.php b/src/DrupalCI/Plugin/BuildTask/BuildStep/Testing/Simpletest.php
index 62b4c3cf..2fb0e641 100644
--- a/src/DrupalCI/Plugin/BuildTask/BuildStep/Testing/Simpletest.php
+++ b/src/DrupalCI/Plugin/BuildTask/BuildStep/Testing/Simpletest.php
@@ -2,9 +2,8 @@
 
 namespace DrupalCI\Plugin\BuildTask\BuildStep\Testing;
 
-use DrupalCI\Build\Artifact\Junit\JunitXmlBuilder;
+use Composer\Semver\Semver;
 use DrupalCI\Build\BuildInterface;
-use DrupalCI\Build\Environment\Environment;
 use DrupalCI\Injectable;
 use DrupalCI\Plugin\BuildTask\BuildStep\BuildStepInterface;
 use DrupalCI\Plugin\BuildTaskBase;
@@ -62,6 +61,9 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
    */
   public function configure() {
     // Override any Environment Variables
+    if (FALSE !== getenv('DCI_CoreBranch')) {
+      $this->configuration['core_branch'] = getenv('DCI_CoreBranch');
+    }
     if (FALSE !== getenv('DCI_Concurrency')) {
       $this->configuration['concurrency'] = getenv('DCI_Concurrency');
     }
@@ -89,6 +91,9 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
     if (FALSE !== getenv('DCI_RTVerbose')) {
       $this->configuration['verbose'] = getenv('DCI_RTVerbose');
     }
+    if (FALSE !== getenv('DCI_RTSuppressDeprecations')) {
+      $this->configuration['suppress-deprecations'] = getenv('DCI_RTSuppressDeprecations');
+    }
   }
 
   /**
@@ -102,20 +107,9 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
     if ($status > 0) {
       return $status;
     }
-    $command = ["cd " . $this->environment->getExecContainerSourceDir() . " && sudo -u www-data php " . $this->environment->getExecContainerSourceDir() . $this->runscript];
     $this->configuration['dburl'] = $this->system_database->getUrl();
-    $command[] = $this->getRunTestsFlagValues($this->configuration);
-    $command[] = $this->getRunTestsValues($this->configuration);
-
-    if (isset($this->configuration['extension_test']) && ($this->configuration['extension_test'])) {
-      $command[] = "--directory " . $this->codebase->getTrueExtensionSubDirectory();
-    }
-    else {
-      $command[] = $this->configuration['testgroups'];
-    }
-    $command_line = implode(' ', $command);
 
-    $result = $this->environment->executeCommands($command_line);
+    $result = $this->environment->executeCommands($this->getRunTestsCommand());
 
     // Look at the output for no valid tests, and set that to an acceptable signal.
     if (strpos($result->getOutput(), 'ERROR: No valid tests were specified.') !== FALSE) {
@@ -128,8 +122,8 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
 
     $this->saveContainerArtifact('/var/log/apache2/error.log','apache-error.log');
     $this->saveContainerArtifact('/var/log/apache2/test.apache.error.log','test.apache.error.log');
-//    $this->saveContainerArtifact('/var/log/supervisor/phantomjs.err.log','phantomjs.err.log');
-//    $this->saveContainerArtifact('/var/log/supervisor/phantomjs.out.log','phantomjs.out.log');
+    //    $this->saveContainerArtifact('/var/log/supervisor/phantomjs.err.log','phantomjs.err.log');
+    //    $this->saveContainerArtifact('/var/log/supervisor/phantomjs.out.log','phantomjs.out.log');
     $this->saveContainerArtifact($this->environment->getExecContainerSourceDir() . '/sites/default/files/simpletest','phpunit-xml');
 
     $this->saveStringArtifact('simpletestoutput.txt', $result->getOutput());
@@ -141,12 +135,43 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
     return 0;
   }
 
+  protected function getRunTestsCommand() {
+    // Figure out if this is a contrib test.
+    $is_extension_test = isset($this->configuration['extension_test']) && ($this->configuration['extension_test']);
+
+    $command = ["cd " . $this->environment->getExecContainerSourceDir() . " && sudo -u www-data php " . $this->environment->getExecContainerSourceDir() . $this->runscript];
+
+    if ($is_extension_test && $this->configuration['suppress-deprecations'] === NULL ) {
+      // Always add --suppress-deprecations for contrib if there is no
+      // environment variable set. getRunTestsFlagValues() will determine
+      // whether to add it based on core version.
+      // @todo Turn this off when some other solution is decided in
+      //   https://www.drupal.org/project/drupal/issues/2607260
+      $this->configuration['suppress-deprecations'] = TRUE;
+    }
+
+    // Parse the flags and optional values.
+    $command[] = $this->getRunTestsFlagValues($this->configuration);
+    $command[] = $this->getRunTestsValues($this->configuration);
+
+    // Extension test is assumed to be a contrib project, so we specify
+    // --directory.
+    if ($is_extension_test) {
+      $command[] = "--directory " . $this->codebase->getTrueExtensionSubDirectory();
+    }
+    else {
+      // Add the test groups last, if this is not an extension test.
+      $command[] = $this->configuration['testgroups'];
+    }
+
+    return implode(' ', $command);
+  }
+
   /**
    * @inheritDoc
    */
   public function complete($childStatus) {
-
-    $gdbcommands = ['source /usr/src/php/.gdbinit','bt','zbacktrace','q', ];
+    $gdbcommands = ['source /usr/src/php/.gdbinit','bt','zbacktrace','q' ];
     $gdb_command_file = $this->pluginWorkDir . '/debugscript.gdb';
     file_put_contents($gdb_command_file, implode("\n", $gdbcommands));
     $phpcoredumps = glob('/var/lib/drupalci/coredumps/core.php*');
@@ -162,6 +187,7 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
     }
 
   }
+
   /**
    * @inheritDoc
    */
@@ -178,6 +204,9 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
       'verbose' => FALSE,
       // testing modules or themes?
       'extension_test' => FALSE,
+      'core_branch' => '8.4.x',
+      // NULL means that this has not been configured.
+      'suppress-deprecations' => NULL,
     ];
   }
 
@@ -226,11 +255,10 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
   }
 
   protected function setupSimpletestDB(BuildInterface $build) {
-
     // This is a rare instance where we're meddling with config after the object
     // is underway. Perhaps theres a better way?
     $sqlite_db_filename = 'simpletest.sqlite';
-    $this->configuration['sqlite'] = $this->environment->getContainerWorkDir() . '/' . $this->pluginDir .  '/' . $sqlite_db_filename;
+    $this->configuration['sqlite'] = $this->environment->getContainerWorkDir() . '/' . $this->pluginDir . '/' . $sqlite_db_filename;
     $dbfile = $this->pluginWorkDir . '/' . $sqlite_db_filename;
     $this->results_database->setDBFile($dbfile);
     $this->results_database->setDbType('sqlite');
@@ -238,7 +266,7 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
   }
 
   protected function generateTestGroups() {
-    $testgroups_file = $this->environment->getContainerWorkDir() . '/' . $this->pluginDir. '/testgroups.txt';
+    $testgroups_file = $this->environment->getContainerWorkDir() . '/' . $this->pluginDir . '/testgroups.txt';
     $cmd = 'sudo -u www-data php ' . $this->environment->getExecContainerSourceDir() . $this->runscript . ' --list > ' . $testgroups_file;
     $result = $this->environment->executeCommands($cmd);
     if ($result->getSignal() !== 0) {
@@ -295,6 +323,10 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
       'keep-results-table',
       'verbose',
     ];
+    // Add suppress-deprecations if we're running core ^8.5.
+    if ($this->canAddSuppressDeprecations()) {
+      $flags[] = 'suppress-deprecations';
+    }
     foreach ($config as $key => $value) {
       if (in_array($key, $flags)) {
         if ($value) {
@@ -305,6 +337,22 @@ class Simpletest extends BuildTaskBase implements BuildStepInterface, BuildTaskI
     return implode(' ', $command);
   }
 
+  /**
+   * Determines whether the core version can use --suppress-deprecations.
+   *
+   * @return bool
+   */
+  protected function canAddSuppressDeprecations() {
+    if (isset($this->configuration['core_branch'])) {
+      // 8.5.x becomes 8.5.0.
+      $core_version = str_replace('x', '0', $this->configuration['core_branch']);
+      if (Semver::satisfies($core_version, '^8.5')) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  }
+
   /**
    * Turn run-test.sh values into their command-line equivalents.
    *
diff --git a/tests/DrupalCI/Tests/Plugin/BuildTask/BuildStep/Testing/SimpletestTest.php b/tests/DrupalCI/Tests/Plugin/BuildTask/BuildStep/Testing/SimpletestTest.php
new file mode 100644
index 00000000..74634a26
--- /dev/null
+++ b/tests/DrupalCI/Tests/Plugin/BuildTask/BuildStep/Testing/SimpletestTest.php
@@ -0,0 +1,145 @@
+<?php
+
+namespace DrupalCI\Tests\Plugin\BuildTask\BuildStep\Testing;
+
+use DrupalCI\Build\Codebase\CodebaseInterface;
+use DrupalCI\Build\Environment\EnvironmentInterface;
+use DrupalCI\Tests\DrupalCITestCase;
+use DrupalCI\Plugin\BuildTask\BuildStep\Testing\Simpletest;
+
+/**
+ * @group Simpletest
+ * @coversDefaultClass \DrupalCI\Plugin\BuildTask\BuildStep\Testing\Simpletest
+ */
+class SimpletestTest extends DrupalCITestCase {
+
+  public function providerGetRunTestsCommand() {
+    return [
+      'core' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --all',
+        ['core_branch' => '8.5.x'],
+      ],
+      'core-8.5.x-suppress-deprecations' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --suppress-deprecations --values=value --all',
+        ['core_branch' => '8.5.x', 'suppress-deprecations' => TRUE],
+      ],
+      'core-8.4.x-suppress-deprecations-flag' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --all',
+        ['core_branch' => '8.4.x', 'suppress-deprecations' => TRUE],
+      ],
+      'contrib-default' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE],
+      ],
+      'contrib-8.4.x' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE, 'core_branch' => '8.4.x'],
+      ],
+      'contrib-8.4.x-suppress-deprecations-true' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE, 'core_branch' => '8.4.x', 'suppress-deprecations' => TRUE],
+      ],
+      'contrib-8.5.x' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --suppress-deprecations --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE, 'core_branch' => '8.5.x'],
+      ],
+      'contrib-8.5.x-suppress-deprecations-false' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE, 'core_branch' => '8.5.x', 'suppress-deprecations' => FALSE],
+      ],
+      'contrib-8.5.x-suppress-deprecations-true' => [
+        'cd exec-container-source-dir && sudo -u www-data php exec-container-source-dir/core/scripts/run-tests.sh --color --keep-results --suppress-deprecations --values=value --directory true-extension-subdirectory',
+        ['extension_test' => TRUE, 'core_branch' => '8.5.x', 'suppress-deprecations' => TRUE],
+      ],
+    ];
+  }
+
+  /**
+   * @dataProvider providerGetRunTestsCommand
+   * @covers ::getRunTestsCommand
+   */
+  public function testGetRunTestsCommand($expected, $configuration) {
+    $environment = $this->getMockBuilder(EnvironmentInterface::class)
+      ->setMethods([
+        'getExecContainerSourceDir'
+      ])
+      ->getMockForAbstractClass();
+    $environment->expects($this->any())
+      ->method('getExecContainerSourceDir')
+      ->willReturn('exec-container-source-dir');
+
+    $codebase = $this->getMockBuilder(CodebaseInterface::class)
+      ->setMethods(['getTrueExtensionSubDirectory'])
+      ->getMockForAbstractClass();
+    // Always check core for this test.
+    $codebase->expects($this->any())
+      ->method('getTrueExtensionSubDirectory')
+      ->willReturn('true-extension-subdirectory');
+
+    $container = $this->getContainer([
+      'environment' => $environment,
+      'codebase' => $codebase,
+    ]);
+
+    $simpletest = $this->getMockBuilder(Simpletest::class)
+      ->setMethods([
+        'getRunTestsValues',
+      ])
+      ->getMock();
+    $simpletest->expects($this->once())
+      ->method('getRunTestsValues')
+      ->willReturn('--values=value');
+
+    // Use our mocked services.
+    $simpletest->inject($container);
+
+    // Set up config.
+    $ref_configuration = new \ReflectionProperty($simpletest, 'configuration');
+    $ref_configuration->setAccessible(TRUE);
+    $ref_configuration->setValue(
+      $simpletest,
+      array_merge(
+        $simpletest->getDefaultConfiguration(),
+        $configuration
+      )
+    );
+
+    // Run getRunTestsCommand().
+    $ref_get_run_tests_command = new \ReflectionMethod($simpletest, 'getRunTestsCommand');
+    $ref_get_run_tests_command->setAccessible(TRUE);
+    $command = $ref_get_run_tests_command->invoke($simpletest);
+    $this->assertEquals($expected, $command);
+  }
+
+  public function provideCanAdd() {
+    return [
+      [TRUE, '8.5.x'],
+      [TRUE, '8.5.0'],
+      [TRUE, '8.6.0'],
+      [FALSE, '8.4.x'],
+      [FALSE, '8.4.6'],
+    ];
+  }
+
+  /**
+   * @covers ::canAddSuppressDeprecations
+   * @dataProvider provideCanAdd
+   */
+  public function testCanAddSuppressDeprecations($expected, $core_version) {
+    $simpletest = new Simpletest();
+
+    $configuration = array_merge(
+      $simpletest->getDefaultConfiguration(),
+      ['core_branch' => $core_version]
+    );
+
+    $ref_configuration = new \ReflectionProperty($simpletest, 'configuration');
+    $ref_configuration->setAccessible(TRUE);
+    $ref_configuration->setValue($simpletest, $configuration);
+
+    $ref_can_add = new \ReflectionMethod($simpletest, 'canAddSuppressDeprecations');
+    $ref_can_add->setAccessible(TRUE);
+    $this->assertSame($expected, $ref_can_add->invoke($simpletest));
+  }
+
+}
