Javascript 为什么SauceLabs说我的QUnit测试通过了?

Javascript 为什么SauceLabs说我的QUnit测试通过了?,javascript,unit-testing,testing,qunit,saucelabs,Javascript,Unit Testing,Testing,Qunit,Saucelabs,我们正在尝试使用SauceLabs来验证我们基于浏览器的QUnit测试是否通过了流行的设备/浏览器组合 当我们在浏览器中查看测试时,测试通过: 但出于某种原因,SauceLabs告诉我们他们“失败了” 见: 使用cURL命令 作为参考,我们使用了以下curl命令: curl https://saucelabs.com/rest/v1/ordem/js-tests \ -X POST \ -u ordem:SECRET_KEY \ -H 'Content-Type: application/js

我们正在尝试使用SauceLabs来验证我们基于浏览器的QUnit测试是否通过了流行的设备/浏览器组合

当我们在浏览器中查看测试时,测试通过:

但出于某种原因,SauceLabs告诉我们他们“失败了”

见:

使用cURL命令 作为参考,我们使用了以下curl命令:

curl https://saucelabs.com/rest/v1/ordem/js-tests \
-X POST \
-u ordem:SECRET_KEY \
-H 'Content-Type: application/json' \
--data '{
    "platforms": [
      ["Windows 8.1", "internet explorer", "11"],
      ["Windows 8", "internet explorer", "10"],
      ["Windows 8.1", "firefox", "beta"],
      ["Windows 8", "firefox", "37"],
      ["Windows 7", "firefox", "32"],
      ["OS X 10.8", "safari", "6"],
      ["OS X 10.8", "chrome", "37"],
      ["Linux", "chrome", "30"],
      ["Linux", "firefox", "dev"],
      ["OS X 10.10","iphone", "7.0"],
      ["OS X 10.10","iphone", "8.2"],
      ["OS X 10.10","ipad", "7.0"],
      ["OS X 10.10","ipad", "8.2"]
    ],
    "url": "https://qunit.herokuapp.com/test/test.html?coverage=true",
    "framework": "qunit",
    "name":"ordem",
    "public": "public",
    "build": "build-007"
}'
另外,是否有其他人遇到过以下错误:

沙司虚拟机无法启动浏览器或设备

访问:获取完整的测试列表。 点击任何一个“失败”并观看视频以查看测试通过


非常感谢您的任何见解

您应该添加几个钩子来报告来自SauceLabs的qunit测试结果

这是如何开始使用qunit的。其中提到了以下代码段:

var log = [];
QUnit.done = function (test_results) {
  var tests = log.map(function(details){
    return {
      name: details.name,
      result: details.result,
      expected: details.expected,
      actual: details.actual,
      source: details.source
    }
  });
  test_results.tests = tests;

  // delaying results a bit cause in real-world
  // scenario you won't get them immediately
  setTimeout(function () { window.global_test_results = test_results; }, 2000);
};
QUnit.testStart(function(testDetails){
  QUnit.log = function(details){
    if (!details.result) {
     details.name = testDetails.name;
     log.push(details);
    }
 }
});

在测试和结果正确报告之前添加此代码

谢谢您的回复!我们已经添加了那个脚本。请参阅:但在SauceLabs上的internet explorer中仍会出现故障。此外,我们不会再使用Grunt。。。我们只想向sauceapi发送一个简单/轻量级http(cURL)请求来运行我们的测试。您在报告中看到了什么错误?它是永久复制的吗?