javascript – 显示Jasmine运行的测试/期望总数

前端之家收集整理的这篇文章主要介绍了javascript – 显示Jasmine运行的测试/期望总数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在将大量的QUnit测试转换为Jasmine.在QUnit中,我习惯于看到所有测试模块的测试总数,显示在顶部.例如.:

Tests completed in 157 milliseconds.

528 tests of 528 passed,0 Failed.

我认为测试的数量是重要的信息.但是,Jasmine的示例测试运行器不显示测试总数.相反,你会得到类似的东西:

Passing 106 specs

这些规范中的每一个都可以包含任意数量的单独测试.是否可以确定已运行的测试总数,以便我可以在我的测试运行器中显示它?我在网上和Jasmine文档中查找过信息,但到目前为止还没有找到任何信息.

根据@ ggozad的回复,我提出了以下解决方案,该解决方案将打印到控制台.欢迎提出如何改进它或如何将结果干净地添加到Jasmine的HTML输出的建议.

var jasmineEnv = jasmine.getEnv();
var htmlReporter = new jasmine.HtmlReporter();
var reportRunnerResults = htmlReporter.reportRunnerResults;

htmlReporter.reportRunnerResults = function(runner) {
    reportRunnerResults(runner);

    var specs = runner.specs();
    var specResults;
    var assertionCount = {total: 0,passed: 0,Failed: 0};

    for (var i = 0; i < specs.length; ++i) {
        if (this.specFilter(specs[i])) {
            specResults = specs[i].results();
            assertionCount.total += specResults.totalCount;
            assertionCount.passed += specResults.passedCount;
            assertionCount.Failed += specResults.FailedCount;
        }
    }

    if (console && console.log) {
        console.log('Total: ' + assertionCount.total);
        console.log('Passed: ' + assertionCount.passed);
        console.log('Failed: ' + assertionCount.Failed);
    }
};

jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
    return htmlReporter.specFilter(spec);
};

window.onload = function() {
    jasmineEnv.execute();
};

控制台输出示例:

Total: 67
Passed: 67
Failed: 0 
最佳答案
规范是Jasmine的测试.在其中,您可以获得类似于其他测试框架中的断言的期望.因此,您看到的报告数量是它调用的总数:

it('passes some expectations',function () {
  ...
});

通常,您可以将多个类似单元的测试组合在一起,这可以帮助您将功能组合在一起,并提供关于应用程序开发方式的更一致的视图.

现在,如果您坚持想要了解您的规范中失败/成功的期望,您始终可以从您的记者那里获取此信息.例如,如果您设置了htmlReporter的实例,则可以执行以下操作:

htmlReporter.reportRunnerResults = function (runner) {
...
};

在你的功能里面你可以查看各种各样的东西,这里有一些提示

> runner.specs()为您提供所有规格
>对于每个说规格,结果= spec.results()会给你关于你的期望的信息.
> results.totalCount,results.FailedCount,results.passedCount就是你要找的;)

猜你在找的JavaScript相关文章