title: Getting Protractor Tests to Run on SauceLabs
body: <p>I am trying to launch some tests with protractor going to SauceLabs. 
  I have my SauceConnect up and running. I have my protractor.config.js setup correctly I believe, but when I run the tests on my machine it with <code>ng e2e --suite smoke</code>, it is just running on my local machine and not going through the tunnel. Any suggestions? I have been following this "<a href="https://medium.com/@bitrise/how-to-set-up-cross-browser-testing-services-f64bd3fde504" rel="nofollow noreferrer">tutorial</a>" and it has been going pretty well, but I am just not seeing anything going through the tunnel.</p>
  
  <p>Here is my <code>protractor.config.js</code> file:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>const baseUrl = '&lt;BASEURL&gt;';
  const maxNumberOfInstances = process.env.NUMBER_OF_INSTANCES ? process.env.NUMBER_OF_INSTANCES : 1;
  const reportPath = 'protractor/report';
  const HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
  const screenShotReporter = new HtmlScreenshotReporter({
      dest: reportPath,
      filename: 'artemis-e2e-report.html'
  });
  const SAUCELABS_USERNAME = '&lt;SAUCEUSERNAME';
  const SAUCELABS_AUTHKEY = '&lt;SAUCEKEY&gt;';
  
  const chromeArgs = process.env.IS_LOCAL ? ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'] : ['--disable-gpu', '--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'];
  const browserCapabilities = [{
      sauceUser: SAUCELABS_USERNAME,
      sauceKey: SAUCELABS_AUTHKEY,
      browserName: 'chrome',
      tunnelIdentifier: '&lt;SAUCETUNNEL&gt;',
      shardTestFiles: true,
      maxInstances: maxNumberOfInstances,
      platform: 'Windows 10',
      version: '73.0',
      screenResolution: '1280x1024',
      chromeOptions: {
          args: chromeArgs,
          prefs: {
              'credentials_enable_service': false,
              'profile': {
                  'password_manager_enabled': false
              },
              download: {
                  prompt_for_download: false,
                  directory_upgrade: true,
                  default_directory: 'C:\\downloads\\'
              },
          },
      },
      loggingPrefs: {
          browser: 'SEVERE'
      },
  }, ];
  
  // Protractor config
  exports.config = {
      baseUrl: baseUrl,
  
      directConnect: true,
      allScriptsTimeout: 2 * 60 * 1000,
      jasmineNodeOpts: {
          defaultTimeoutInterval: 3 * 60 * 1000
      },
      getPageTimeout: 2 * 60 * 1000,
      suites: {
          smoke: 'protractor/smokeTests/*.scenario.ts',
      },
  
      multiCapabilities: browserCapabilities,
  
      framework: 'jasmine2',
      onPrepare: function () {
          browser.waitForAngularEnabled(true);
          require('ts-node').register({
              project: 'protractor/tsconfig.json',
          });
          const jasmineReporters = require('jasmine-reporters');
          const jUnitXMLReporter = new jasmineReporters.JUnitXmlReporter({
              consolidateAll: false,
              savePath: reportPath,
              filePrefix: 'xmloutput'
          });
  
          const JasmineConsoleReporter = require('jasmine-console-reporter');
          const consoleReporter = new JasmineConsoleReporter({
              colors: 1,
              cleanStack: 1,
              verbosity: 4,
              listStyle: 'indent',
              activity: true,
              emoji: true,
              beep: true,
              timeThreshold: {
                  ok: 10000,
                  warn: 15000,
                  ouch: 30000,
              }
          });
  
          jasmine.getEnv().addReporter(jUnitXMLReporter);
          jasmine.getEnv().addReporter(screenShotReporter);
          jasmine.getEnv().addReporter(consoleReporter);
  
          browser.get(browser.baseUrl);
      },
  
      beforeLaunch: function () {
          return new Promise(function (resolve) {
              screenShotReporter.beforeLaunch(resolve);
          });
      },
  
      afterLaunch: function (exitCode) {
          return new Promise(function (resolve) {
              screenShotReporter.afterLaunch(resolve.bind(this, exitCode));
          });
      },
  };</code></pre>
  </div>
  </div>
  </p>