axemclion / grunt-saucelabs

Grunt task for running all your browser tests using Sauce Labs
MIT License
182 stars 98 forks source link

Stack trace after Stopping Tunnel to Sauce Labs #209

Open jbeard4 opened 8 years ago

jbeard4 commented 8 years ago

I am using grunt-saucelabs#e865bb24912da3928e2609b958e4a68dd9f07da3 (current HEAD on master), because I was getting unmet peer dependency errors using grunt-saucelabs latest release v8.6.2, due to its dependency on grunt 0.4.0.

Here is package.json:

  "devDependencies": {
    "async": "1.5.2",
    "babel-plugin-transform-es2015-modules-umd": "^6.8.0",
    "babel-preset-es2015": "^6.9.0",
    "grunt": "^1.0.1",
    "grunt-babel": "^6.0.0",
    "grunt-contrib-connect": "^1.0.2",
    "grunt-contrib-nodeunit": "^1.0.0",
    "grunt-contrib-uglify": "^1.0.1",
    "grunt-saucelabs": "axemclion/grunt-saucelabs#e865bb24912da3928e2609b958e4a68dd9f07da3",
    "load-grunt-tasks": "^3.5.0",
    "minimist": "1.2.0",
    "nodeunit": "0.9.1",
    "tape": "4.5.1"
  },

Gruntfile:

      connect: {
        server: {
          options: {
            base: '',
            port: 9999
          }
        }
      },
      'saucelabs-custom': {
        all: {
          options: {
          username: 'jbeard4', 
          key: "my key"
            urls: [
              'http://127.0.0.1:9999/test/harness/browser/harness.html'
            ],
            browsers: browsers,
            //build: process.env.TRAVIS_JOB_ID,
            testname: 'custom tests',
            throttled: 3,
            sauceConfig: {
              'video-upload-on-pass': false
            }
          }
        }
      }
...
  grunt.registerTask('run-browser-tests', ['connect', 'saucelabs-custom' ]);

And a trivial HTML:

<html>
  <link rel="stylesheet" src="lib/nodeunit.css">
  <script src="lib/nodeunit.js"></script>
  <script src="build/nodeunit-tests-bundle.js"></script>
  <script src="/dist/scion.js"></script>
  <body>
    <script>
      window.global_test_results = {
        "passed": 1,
        "failed": 3,
        "total": 4,
        "duration": 4321,
        "tests": [
          {
            "name": "foo test",
            "result": false,
            "message": "sumthin bad",
            "duration": 4000
          },
          {
            "name": "bar test",
            "result": false,
            "message": "failure",
            "duration": 300
          },
          {
            "name": "baz test",
            "result": true,
            "message": "passed",
            "duration": 20
          },
          {
            "name": "qux test",
            "result": false,
            "message": "test bad",
            "duration": 1
          }
        ]
      }
    </script>
  </body>
</html>

I get the following stack trace:

jbeard4@Jacobs-MacBook-Pro:~/workspace/scion/SCION-CORE$ grunt run-browser-tests
Running "connect:server" (connect) task
Started connect web server on http://localhost:9999

Running "saucelabs-custom:all" (saucelabs-custom) task
=> Starting Tunnel to Sauce Labs
>> Connected to Saucelabs

 1 / 5 tests started

 2 / 5 tests started

 3 / 5 tests started

 4 / 5 tests started

 5 / 5 tests started
=> Stopping Tunnel to Sauce Labs
>> Error: POST https://saucelabs.com/rest/v1/jbeard4/js-tests failed.
>>     at /Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/src/utils.js:97:15
>>     at _rejected (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:844:24)
>>     at /Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:870:30
>>     at Promise.when (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:1122:31)
>>     at Promise.promise.promiseDispatch (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:788:41)
>>     at /Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:604:44
>>     at runSingle (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:137:13)
>>     at flush (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/q/q.js:125:13)
>>     at doNTCallback0 (node.js:419:9)
>>     at process._tickCallback (node.js:348:13)
>>     Error: A callback was provided but waiting a promise, use only one pattern
>>         at Request.exposedPromiseMethod [as then] (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/node_modules/requestretry/index.js:128:13)
>>     From previous event:
>>     From previous event:
>>         at Object.makeRequest (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/src/utils.js:85:8)
>>         at Job.start (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/src/Job.js:86:8)
>>         at getResult (/Users/jbeard4/workspace/scion/SCION-CORE/node_modules/grunt-saucelabs/src/TestRunner.js:113:10)
Warning: Task "saucelabs-custom:all" failed. Use --force to continue.

Aborted due to warnings.