JavaScript,Jasmine,隐藏残疾茉莉花规格

时间:2014-07-22 07:42:15

标签: javascript jasmine

我想在运行所选测试时隐藏禁用的茉莉花规格。我有很多测试,所以我不想在每次刷新后向下滚动以达到底部的测试。

茉莉花有什么选择可以吗?我已经完成了文档,但没有找到任何内容。

5 个答案:

答案 0 :(得分:3)

这是一个关键的设计决策,如本期所述。

https://github.com/pivotal/jasmine/issues/510

以下是问题中评论的解决方法。

在jasmine-html.js中,添加一个函数以递归方式确定结果节点是否具有任何活动规范:

function hasActiveSpec(resultNode) {
  if (resultNode.type == "spec" && resultNode.result.status != "disabled") {
    return true;
  }

  if (resultNode.type == 'suite') {
    for (var i = 0, j = resultNode.children.length; i < j; i++) {
      if (hasActiveSpec(resultNode.children[i])) {
        return true;
      }
    }
  }
}

然后,在summaryList函数中,只运行套件的过滤器:

// ...
var resultNode = resultsTree.children[i];
if (resultNode.type == "suite") {
  // Don't display inactive suites
  if (!hasActiveSpec(resultNode)) {
    continue;
  }

  // var suiteListNode = ...
  // ...
}

答案 1 :(得分:1)

如果你不想修改Jasmine源代码,你也可以添加这样的钩子(我的例子假设存在jQuery):

jasmine.getEnv().addReporter({
    jasmineDone: function () {
        $(".disabled").parents(".suite").hide();
    }
});

有关详细信息,请参阅http://jasmine.github.io/2.1/custom_reporter.html

答案 2 :(得分:1)

如果您正在通过Karma运行测试,那么您可以配置一个规范报告插件来忽略各种事情。

https://www.npmjs.com/package/karma-spec-reporter

https://www.npmjs.com/package/karma-spec-reporter-2

答案 3 :(得分:0)

我没有办法隐藏待审的测试。但是,您可以在测试中添加下一个样式以隐藏待处理的测试。

.pending {
  display: none;
}

您可以看到一个有效的示例here

答案 4 :(得分:-1)

取自茉莉花介绍页......

  

可以使用xdescribe和xit函数禁用套件和规格,   分别。这些套件及其中的任何规格都会被忽略   运行,因此他们的结果不会出现在结果中。